我正在尝试分析一个恶意 DLL,当我在 IDA 中加载它时,我可以看到两个函数 -DLLEntryPoint和DLLMain. 然后我通过将标识文件为 DLL 的特征位切换到 EXE 来更改格式。当我在 IDA 中再次加载文件时,我可以看到两个函数 -Start和WinMain
据我所知,Start是 exe 的入口点,它在调用WinMain或Main. 是DLLEntryPoint和DLLMainDll 的类似功能吗?
我正在尝试分析一个恶意 DLL,当我在 IDA 中加载它时,我可以看到两个函数 -DLLEntryPoint和DLLMain. 然后我通过将标识文件为 DLL 的特征位切换到 EXE 来更改格式。当我在 IDA 中再次加载文件时,我可以看到两个函数 -Start和WinMain
据我所知,Start是 exe 的入口点,它在调用WinMain或Main. 是DLLEntryPoint和DLLMainDll 的类似功能吗?
首先,请阅读本文。
本质上的区别在于(在这两种情况下)一个 - 入口点 - 指的是初始代码所在的地址,另一个 - “主函数” - 将是(C)运行时提供的,可能隐藏你的血腥细节。
据我所知,
Start是 exe 的入口点,它在调用WinMain或Main. 是DLLEntryPoint和DLLMainDll 的类似功能吗?
这几乎是正确的。Start 就是在这种情况下,入口点的符号名,真实。但是,它是否执行某种初始化完全取决于库。我敢打赌,IDA 已经通过 FLIRT 签名识别了一些运行时库(例如 Visual C++ 运行时),并使用该信息DllMain向您指出。
从概念DLLEntryPoint和DLLMain镜面你发现.exe的文件,是的。