简单来说,我正在尝试手工组装(请不要问它)
但是,我遇到了从Win32 API调用API函数的问题。
在各种汇编语言中,您要做的是包含或导入诸如“windows.lib”或“windows.inc”或类似的内容。
问题是,这因汇编程序而异,甚至输出(二进制)看起来也不同;我想不通。
因此,我的一般问题是:从DLL库中调用API方法在Windows PE文件的二进制版本中看起来如何?
我试图在互联网上四处寻找有关这方面的资源,但没有成功......

最佳答案

最好的方法是阅读有关 NTDLL 的微软文档,但显然只有通过付费才能阅读任何引用文献(使用 the MSDN service )
另一种选择是:
使用调试器,了解如何请求 NTDLL。
Step per Step 和更多信息:

  • 首先,使用调试器下载几个程序,找出它们对NTDLL的调用,内核调用的抽象层是什么,NTDLL永远不会在同一个地址,出于安全原因,所以只能有一个变量总是指向ntdll,也就是ram中的一个变量寄存器。
  • 找出 NTDLL 使用什么决策机制来定义参数以及调用的用途。

  • 您可以在其中找到有关信息的引用资料: Fasm Forum Article: How call NTDLL directly

    关于windows - 如何从程序集正确调用 Windows API 方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10774508/

    10-11 15:46