同人星球BBS -> 游戏修改 -> [资料]CE汇编常用命令 [打印本页] 登录 -> 注册 -> 回复主题 -> 发表主题

修改众 08-05-10 15:32

CE汇编常用命令

1 分配内存空间。
alloc(参数1,参数2)
参数1:任意自定义的英文名称。
参数2:要分配的内存大小,单位字节
分配新的内存空间,用于写入自己的汇编代码。注意分配的空间要足够。
例如:
alloc(newmem,1000)
分配1000字节的内存,并命名为newmem

dealloc(参数)
参数:alloc命令分配的地址名称
与alloc配套使用,用于撤销分配内存。



2 注册地址名称
registersymbol(参数)
参数:已经分配好的内存地址。
将某个地址注册为某个名称。注册后的名称可以当作地址直接使用。
可以直接在地址列表中手动添加该名称。CE会自动指向正确地址。
也可以在汇编代码中用该名称。
例如:
alloc(myhp,4)
registersymbol(myhp)
分配4个字节的地址,然后注册这个地址的名称为 myhp

unregistersymbol(参数)
参数: registersymbol命令注册的名称。
撤销名称注册。


3 标签
label(参数)
  参数:标签名称
声明1个标签,用于跳转或者返回。标签指向标签所在位置的代码。




范例
Copy code
[ENABLE]
alloc(setfanction,1000)
alloc(read1pptr,100)
alloc(read2pptr,100)
alloc(point,8)
alloc(actlock1p,4)
alloc(actlock2p,4)
alloc(boss1p,4)
alloc(boss2p,4)
alloc(super1p,4)
registersymbol(point)
registersymbol(actlock1p)
registersymbol(actlock2p)
registersymbol(boss1p)
registersymbol(boss2p)
registersymbol(super1p)
label(exitread1pptr)
label(exitsetfan)

00415edd:              //保存玩家指针地址
jmp read1pptr
nop
exitread1pptr:

read1pptr:
push eax
lea eax,[ebp+20]
mov [point],eax
add eax,4
mov [point+04],eax
pop eax
mov eax,[ecx+000000ac]
jmp exitread1pptr:

004167cc:                //在游戏检查玩家生命是否为0的时候,进行修改。
jmp setfanction
nop
exitsetfan:

setfanction:
push eax
push [point]                  //修改玩家1
pop eax
mov eax,[eax]
cmp [actlock1p],00000001
db 75 0a                                //75 0A 意思是 如果不相等,向后跳过10个字节
mov [eax+00000ac],00000001
cmp [boss1p],00000001
db 75 0a
mov [eax+00005dc],00000003
cmp [super1p],00000001
db 75 1e
mov [eax+000052c],00002710
mov [eax+0000534],00001f40
mov [eax+00005fc],461C4000
nop
nop
nop
push [point+04]                          //修改玩家2
pop eax
mov eax,[eax]
cmp [actlock2p],00000001
db 75 0a
mov [eax+00000ac],00000001
cmp [boss2p],00000001
db 75 0a
mov [eax+00005dc],00000003
pop eax                                           
mov ecx,[eax+0000052c]
jmp exitsetfan

[DISABLE]
00415edd:
mov eax,[ecx+000000ac]
004164f6:
call 00426320
004167cc:
mov ecx,[eax+0000052c]
dealloc(setfanction)
dealloc(read1pptr)
dealloc(read2pptr)
dealloc(point)
dealloc(actlock1p)
dealloc(actlock2p)
dealloc(boss1p)
dealloc(boss2p)
dealloc(super1p)
unregistersymbol(point)
unregistersymbol(actlock1p)
unregistersymbol(actlock2p)
unregistersymbol(boss1p)
unregistersymbol(boss2p)
unregistersymbol(super1p)

elliotor 08-05-17 13:55
........真专业- -,看的辛苦- -


查看完整版本: [-- [资料]CE汇编常用命令 --] [-- top --]

Powered by PHPWind v5.3 Code © 2003-05 PHPWind
Time 0.035065 second(s),query:4 Gzip enabled

You can contact us