gpt4 book ai didi

c - 将 c 函数移植到 NASM

转载 作者:行者123 更新时间:2023-11-30 17:55:27 25 4
gpt4 key购买 nike

我想将此 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

有人可以帮助我吗?

最佳答案

IIRC,NASM 不支持命名函数参数,因此您必须手动从寄存器或堆栈中提取参数。 AFAIR,所有 Win32 API 函数都需要堆栈上的参数,因此您应该替换它

mov eax, [lpParameter]

有了这个

mov eax, [esp+4]

关于c - 将 c 函数移植到 NASM,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14328060/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com