如何以编程方式查找Win32 API前向引用?

时间:2015-07-05 08:10:53

标签: winapi

某些Win32 API调用实际上是其他库的转发器。例如,KERNEL32.LeaveCriticalSection是NTDLL.RtlLeaveCriticalSection的转发。如何以编程方式找到NTDLL.RtlLeaveCriticalSection的调用实际上转发到KERNEL32.LeaveCriticalSection调用,反之亦然(我试图在我的项目中不使用所谓的系统库NTDLL.DLL并且只使用用户KERNEL32.DLL )

1 个答案:

答案 0 :(得分:2)

您可以解析实际的可执行文件kernel32.dll。阅读PE元数据以了解如何定义导出。

试图避免依赖ntdll是徒劳的。这是因为kernel32ntdll有很强的依赖关系,所有进程都包含kernel32。我怀疑你对这些库的作用有点困惑,但你的过程中会有ntdll

现在,您可能希望避免调用ntdll导出的本机API中的函数。这是非常合理的,kernel32和其他Win32库所做的事情之一就是将您与本机API隔离开来。但是,Win32是在本机API之上实现的。 kernel32可以使用它。