5

简而言之,我正在尝试手工组装(请不要问)

但是,我遇到了调用 API 函数的问题,比如从 win32 API 调用。在各种汇编语言中,您要做的就是包含或导入诸如“windows.lib”或“windows.inc”或类似的东西。问题是,这因汇编程序而异,甚至输出(二进制)看起来也不同;我想不通。

所以我的一般问题是:从 DLL 库调用 API 方法在二进制版本中和在 Windows PE 文件中的外观如何?

我尝试在互联网上四处寻找有关此的资源,但没有成功...

4

1 回答 1

-4

最好的方法是阅读有关 NTDLL 的微软文档,但显然只能通过付费阅读任何参考资料(使用MSDN 服务

另一种方法是:使用调试器,了解如何请求 NTDLL。

每一步的步骤和更多信息:

  1. 首先,使用调试器并下载几个程序并找出它们对 NTDLL 的调用,内核调用的抽象层是什么,NTDLL 永远不会在同一个地址,出于安全原因,所以只能有一个始终指向的变量到ntdll,即ram中的一个变量寄存器。

  2. 找出 NTDLL 使用什么决策机制来定义参数以及调用的目的。

参考资料:Fasm 论坛 文章:如何直接调用 NTDLL

于 2020-09-04T17:54:22.377 回答