应用程序如何加载没有名称的 DLL?
我已经反汇编了一个调用 DLL 库中函数的 VB6 应用程序,但在反汇编中找不到任何对该 DLL 的引用。 调用代码如何加载这个DLL? 它是动态链接的,因为我可以观察删除和替换 DLL 的效果。
我使用的是 IDA Pro Free,调用应用程序是一个 VB6 应用程序,DLL 是一个普通的 Win32 DLL,我怀疑它是使用 C 或 C++ 创建的。
I have disassembled a VB6 application that calls a function in a DLL library, but I can't find any reference to the DLL in the disassembly. How can the calling code load this DLL? It is dynamically linked, as I can observe the effects of removing and replacing the DLL.
I'm using IDA Pro Free, the calling application is a VB6 app, and the DLL is a plain Win32 DLL that I suspect was created using C or C++.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
“找不到任何参考”是什么意思? 你没有看到dll名称的字符串吗?
你没有看到调用 dll 的代码吗?
您可以在 dll 中放置一个断点并查看导致 VB6 应用程序的调用堆栈。
What do you mean by "can't find any reference"? you don't see the string of the dll name?
you don't see the code who calls the dll?
You can put a break point in the dll and see the callstack that leads to the VB6 app.
如果它是一个 COM DLL,它很可能通过 GUID 而不是名称来查找它。
If it's a COM DLL, it may well be looking it up via GUID instead of name.
在 PE Explorer 中打开您的应用程序,它将显示所有链接的 DLL。
Open your application in PE Explorer, it will show you all the DLLs linked.
您是否也搜索过 DLL 名称的 Unicode 版本? 加载 DLL 的应用程序可能是使用宽字符构建的。
Have you searched for the Unicode version of the DLL name too? The application that loads the DLL might be built using wide characters.