我已经创建了一个小程序在汇编(NASM)为Windows 32位调用WinAPI和打开一个消息框。该程序崩溃的一些原因,我不知道为什么,一定有一些问题的代码,但我找不到它(地址是正确的肯定)。任何想法可能是错误,为什么?
[BITS 32]
section .data
section .text
global _start
_start:
; int MessageBox(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);
xor eax, eax
push eax
push 0x74657374 ; string that says "test"
mov ecx, esp ; pointer
push eax
push 0x74657374 ; string that says "test"
mov edx, esp ; pointer
push eax
push ecx
push edx
push eax
mov esi, 0x307be275 ; address to MessageBoxA
call esi
xor eax, eax
push eax
mov eax, 0x778a9fe0 ; address to ExitProcess
jmp eax
1条答案
按热度按时间cclgggtu1#
我发现了错误...
我必须先导入函数。
以下是正确版本: