在NASM中调用ExitWindowsEx

时间:2013-02-27 15:26:36

标签: winapi assembly nasm

我有这个NASM代码

extern GetStdHandle 
extern WriteFile 
extern AllocConsole 
extern FreeConsole 
extern SetConsoleTitleA 
extern SetConsoleCursorPosition 
extern Sleep 
extern ExitProcess 
extern ExitWindowsEx


import GetStdHandle kernel32.dll 
import WriteFile kernel32.dll 
import AllocConsole kernel32.dll 
import FreeConsole kernel32.dll 
import SetConsoleTitleA kernel32.dll 
import SetConsoleCursorPosition kernel32.dll 
import Sleep kernel32.dll 
import ExitProcess kernel32.dll 
import ExitWindowsEx user32.dll

. 
section .text use32 

..start: 

call [ExitWindowsEx]

执行时,它不执行关闭计算机的功能。我读到它需要参数,但我们究竟如何在C#

中传递这样的参数

enter image description here

1 个答案:

答案 0 :(得分:3)

我假设你使用的是32位英特尔架构。在这种情况下,您必须传递堆栈中的参数。

mov eax, 1
mov ebx, 0
push eax
push ebx
call [ExitWindowsEx]