CE自动汇编脚本:常用命令

CE自动汇编脚本:常用命令


======常用命令
alloc(arg1,arg2) 分配内存
如:alloc(newmem,0x1000) alloc(newmem,1000)
dealloc(arg1)
必须是 alloc命令分配的内存

createthread(arg1) 远程创建线程
如:createthread(newmem)
必须是alloc或globalalloc分配的内存。

db 90 90 90 90 写内存数据_字节
dd 0 0 0 0 写内存数据_dword

label(arg1) 标签
汇编代码中用于跳转

globalalloc(arg1,arg2) 分配全局内存
和alloc用法相同,分配后始终存在,无需dealloc

registersymbol(arg1) 注册全局名称
必须是alloc命令分配的内存
unregistersymbol(arg1)



========地址的表示方法
直接写地址 如:
00520000:
db 90 90

模块+偏移 如:
d2command.dll+37000:
db 90 90

newmem+100:
xor eax,eax


=======数据的表示
给eax 赋值99,有以下这些方法
mov eax,63 //汇编默认用16进制
mov eax,#99 //强制用十进制

push 63
pop eax //比上面的代码要短1点

如果想写符点数,用浮点数计算工具把浮点数转换为16进制数值。附件提供下载。

========跳转的用法
jmp 00520000 (绝对地址)

label(aaa)
jmp aaa (标签跳转)

alloc(newmem,0x1000)
jmp newmem+50 (内存间跳转)

alloc(newmem,0x1000)
jmp short 20 (ce5.5特有,这将会跳到newmem+20的地址上去),等同于jmp nenmem+20。
尽量不要用这个命令。


test eax,eax
db 75 01 (向后跳1个字节,跳过ret)
ret
除非你知道要跳过的代码长度,否则绝对不要随意用。
74 je
75 jne

相关文档
最新文档