IDA Pro 将注入的代码定义为 DLL

逆向工程 艾达
2021-07-04 23:43:59

我目前正在分析一些从嵌入式资源加载 DLL 并执行它的恶意软件。通常我会转储 DLL 并为 DLL 创建一个单独的数据库。但是,我遇到了一个问题,因为解包器通过 DllMain 将一个结构传递给 DLL(它仍然传递三个参数,它们只是意味着不同的东西,而 DLL 对此进行了说明)。如果 dll 没有被解包器加载,则 dll 将无法正确加载,因为它需要包含在此结构中的信息才能正常运行,并且会失败并显示错误代码。

我想要做的是在同一个 IDB 中定义解包器和 DLL,因为 DLL 总是加载在相同的地址,我希望能够在 DLLMain 上设置断点,然后运行解包器。然后解包器将解密并加载该地址的 dll,然后我将能够从 DllMain 调试它我可以使用调试器来很好地完成此操作,但我希望在我的 idb 中同时定义可执行文件和 dll使分析更容易,以便我可以将我的评论和其他内容保存在 IDB 中。此外,IDA 不分析注入的代码,这使得反汇编难以阅读。

那么我的问题是我该怎么做?我在 dll 加载后拍摄了内存快照,但在它运行之前,然后将其保存在可加载段中,但 IDA 未将该文件识别为 DLL。我应该怎么做才能让 IDA 识别同一文件中的嵌入式 DLL 和可执行文件。DLL 未被 IDA 识别为模块或任何东西,因为它不是由 loadlibrary 加载的。我一直在寻找几个小时试图弄清楚这一点,但没有取得任何体面的进展。

1个回答

您需要将要保留的内存段标记为加载程序段:

http://www.hexblog.com/?p=8