| 修改众 |
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个标签,用于跳转或者返回。标签指向标签所在位置的代码。
范例
[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)
|
|