【发布时间】:2017-11-27 01:35:31
【问题描述】:
我正在尝试使程序使用系统调用而不是 dll (kernel32.dll,ntdll.dll)。
例如,我知道 Windows 10 64 位中的 0x2C (44) 系统调用是 NtTerminateProcess 购买 that 网页。此外,当我反汇编ntdll.dll 时,我发现了该代码:
NtTerminateProcess:
mov r10, rcx
mov eax, 44
test byte [abs 7FFE0308h], 01h ;also what is in that memory address?
jnz label
syscall
ret
label:
int 46 ;and why the 46 (the 2Eh windows NT interrupt) is here
ret
我的问题是如何以这种方式终止程序?
【问题讨论】:
-
这只是一个指示是使用
syscall还是int的标志。您可能可以无条件地使用syscall。你试过了吗?你有什么问题吗?
标签: windows assembly dll exe system-calls