如何确定哪些DLL是二进制文件取决于使用编程方法?
需要明确的是,我不是要确定正在运行的exec的DLL依赖关系,而是要确定任何任意exec(可能缺少必需的DLL)的DLL依赖关系。我正在寻找在C/C++应用程序中实现的解决方案。这是我的应用程序在运行时需要完成的事情,而第三方应用程序无法完成(如depends)。
最佳答案
看一看 IMAGE_LOAD_FUNCTION
API。它将返回一个指向 LOADED_IMAGE
结构的指针,您可以使用该结构访问PE文件的各个部分。
您可以找到一些文章来描述结构的布局here和here。您可以下载文章here的源代码。
我认为这应该为您提供所需的一切。
更新:
我刚刚下载了本文的源代码。如果打开EXEDUMP.CPP
并查看DumpImportsSection
,它应该具有您所需的代码。