如果使用LoadLibrary显式链接dll,则列出从PE文件导入的函数

Listing imported functions from a PE file if dll is linked explicitly using LoadLibrary

本文关键字:PE 文件 函数 导入 LoadLibrary dll 链接 如果      更新时间:2023-10-16

我需要通过解析PE列出所有导入的函数。如果exe或dll隐式链接dll(使用导入库),我可以从导入表中获取所有调用的函数。但是,如果任何dll或exe显式链接dll(使用LoadLibrary和getProcAddress),则导入表将没有显式链接的dll的条目。

请告诉我如何在显式加载dll时获得调用的所有外部函数的列表(使用getProcAddress)。

感谢和问候,Kiran

这是不可能100%可靠的。基本上,您可以设置一些东西来监控在LoadLibraryGetProcAddress运行时传递给它们的参数,以查看您发现了什么——但您需要意识到,用户在执行过程中所做的选择可能也会影响显示的内容。

它还可以根据配置文件的内容、在任意目录中找到的文件等进行更改(例如,加载目录X中的所有DLL,并在每个DLL中调用initialize_plugin())。