如果我使用LoadLibrary动态加载DLL,我是否需要担心在将控件返回到我的代码之前正在执行的库中的任何初始化代码?
我想检查可疑的DLL,以确定,例如,使用的API或入口点,我想以编程方式执行,而不是使用命令行工具。另外,我想避免运行应用程序以查看会发生什么; - )
谢谢!
答案 0 :(得分:3)
简而言之:不,这不安全。
调用LoadLibrary
,将执行库中的DllMain以及初始化任何全局对象(可以执行构造函数)。它还会导致加载程序在依赖的DLL上调用LoadLibrary。
要安全加载二进制文件,您只需使用普通文件IO来解析二进制文件并进行静态分析。