2024年4月19日发(作者:)

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

模块+偏移 如:

+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