我想将这个c ++函数移植到NASM。
DWORD WINAPI Generic(LPVOID lpParameter) {
__asm {
mov eax, [lpParameter]
call eax
push 0
call ExitThread
}
return 0;
}
我在理解lpParameter如何在这里工作时遇到一些问题,当我在NASM上编译它时,我有错误。
这是我目前的代码:
BITS 32
global _start
_start:
mov eax, [lpParameter]
call eax
push 0
call exitfunk
exitfunk:
mov ebx, 0x0A2A1DE0
push 0x9DBD95A6
call ebp
cmp al, byte 6
jl short goodbye
cmp bl, 0xE0
jne short goodbye
mov ebx, 0x6F721347
goodbye:
push byte 0
push ebx
call ebp
任何人都可以帮助我?
答案 0 :(得分:0)
IIRC,NASM不支持命名函数参数,因此您必须手动从寄存器或堆栈中提取参数。 AFAIR,所有Win32 API函数都需要堆栈上的参数,因此您应该替换此
mov eax, [lpParameter]
用这个
mov eax, [esp+4]