AsmAdd 添加汇编指令
🎯功能
添加指定的MASM汇编指令. 支持标准的masm汇编指令.
📜语法
结果 = dm.AsmAdd(汇编指令)
📥参数
参数 | 数据类型 | 解释 |
---|---|---|
汇编指令 | 字符串 | MASM汇编指令,大小写均可以 比如 "mov eax,1" ,也支持直接加入字节,比如"emit 90 90 90 90"等. 同时也支持跳转指令,标记必须以":"开头. 跳转指令后必须接本次AsmCall之前的存在的有效Label. 另外跳转只支持短跳转,就是跳转的字节码不能超过128个字节 |
📤返回
整型数
, 0
为失败, 1
为成功.
💡示例
dm.AsmAdd "push 100"
dm.AsmAdd "push 60304d"
dm.AsmAdd "emit 90 90 90"
dm.AsmAdd "push dword ptr[112233bb]
dm.AsmAdd "call 678fed"
// 下面是一个跳转指令的例子
dm.AsmAdd "mov eax,1"
dm.AsmAdd "cmp eax,1"
dm.AsmAdd "je Label1"
dm.AsmAdd "mov eax,3"
dm.AsmAdd "jmp Exit"
dm.AsmAdd ":Label1"
dm.AsmAdd "mov eax,2"
dm.AsmAdd ":Exit"
dm.AsmCall hwnd,1
📘备注
有些人用老版本的插件,省略了dword qword word byte等前缀,事实上老版本语法规则不完善,容易出问题,从新版本7.1818开始,所有语法都必须是规范的masm语法. 大家可以参考od里的汇编语法.
一些错误的写法
push [112233bb]
mov ecx,[aabbccdd]
正确的写法
push dword ptr [112233bb]
mov ecx,dword ptr[aabbccdd]
mov cx,word ptr[aabbccdd]
mov cl,byte ptr[aabbccdd]