【问题标题】:How can an application load a DLL without its name?应用程序如何加载没有名称的 DLL?
【发布时间】:2010-10-22 00:40:30
【问题描述】:

我已经反汇编了一个调用 DLL 库中函数的 VB6 应用程序,但我在反汇编中找不到对 DLL 的任何引用。调用代码如何加载这个 DLL?它是动态链接的,因为我可以观察到删除和替换 DLL 的效果。

我使用的是 IDA Pro Free,调用应用程序是一个 VB6 应用程序,而 DLL 是一个普通的 Win32 DLL,我怀疑它是使用 C 或 C++ 创建的。

【问题讨论】:

    标签: windows debugging reverse-engineering disassembly


    【解决方案1】:

    找不到任何参考资料”是什么意思?你没有看到 dll 名称的字符串? 你没有看到调用 dll 的代码吗?
    您可以在 dll 中放置一个断点,然后查看通向 VB6 应用程序的调用堆栈。

    【讨论】:

    • 是的,我的意思是我找不到任何引用 dll 的代码,即我没有看到 dll 名称的字符串,也没有看到调用 dll 的代码。
    • 堆栈跟踪看起来如何(当 dll 处于断点时)?
    • 我还在继续,我还没有正确的调试设置。
    【解决方案2】:

    如果它是一个 COM DLL,它可能会通过 GUID 而不是名称来查找它。

    【讨论】:

      【解决方案3】:

      PE Explorer 中打开您的应用程序,它会显示所有链接的 DLL。

      【讨论】:

        【解决方案4】:

        您是否也搜索过 DLL 名称的 Unicode 版本?加载 DLL 的应用程序可能是使用宽字符构建的。

        【讨论】:

          猜你喜欢
          • 2010-11-21
          • 1970-01-01
          • 2015-04-01
          • 2013-09-11
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多