aardio应该是已经封装好了这个堆栈处理的功能,所以要执行的汇编代码自己补处理堆栈也不会导致外部进程崩溃。如果要传入自定义参数,在代码内部,第一个参数是[esp+4],第二个参数是[esp+8],第三个参数是[esp+12],以此类推。阿里云9折优惠码:8JZ7BR
touzhu_asm = app.asmCdecl(
“void( INT target, INT num)”,
‘\x8B\x44\x24\x04’, //mov eax, [esp+0x4] 此处是传入的target
‘\x8B\x5C\x24\x08’, //mov ebx, [esp+0x8] 此处是传入的num
‘\x6A\x00’, //push 0x0
‘\x53’, //push ebx
‘\x50’, //push eax
‘\x8B\x0D\x18\x71\x41\x00’, //mov ecx, [0x417118]
‘\xBB\x70\x46\x40\x00’, //mov ebx, 0x404670
‘\xFF\xD3’, //call ebx
‘\xC3’, //ret
)
最新评论