【问题标题】:How do I decompile a .dll file?如何反编译 .dll 文件?
【发布时间】:2011-07-09 00:25:33
【问题描述】:

我有一个 .dll 我想反编译以对代码进行一些改进。有哪些工具可以让我做到这一点?

我相信它是用 VB 编写的。

【问题讨论】:

    标签: dll decompiler


    【解决方案1】:

    答案取决于 DLL 是用什么语言编写的。

    如果它是一种 .NET 语言,那么正如所指出的,您可以使用 .NET Reflector。

    如果是较旧的 Visual Basic(.NET 之前),则 DLL 被编译为所谓的 p-code 并且有几个 options for doing some variations on decompiling

    最后,如果它是用 C++ 之类的语言编写的,则无法直接获取源代码。这样的DLL是编译成机器语言的,只能直接反编译成汇编语言。

    所以,同样,这取决于所使用的语言。答案可能是不可能得到任何类似于原始源代码的东西。

    【讨论】:

    • 那么,如前所述,如果是 Visual Basic,请研究 p-code decompilers
    • 我真正想要的是一种从 .dll 中查看源代码的方法。不知道有没有免费的工具呢?
    • 从已编译的 DLL 中查看源代码称为反编译。源代码不在 DLL 中——它必须通过反编译二进制数据来重建。我只有这么多不同的方式可以回答你的问题。我已经很彻底了。
    • 为什么反编译后的代码不可读?对我来说它看起来不像vb? (这里是新手)
    • @curiousgeorge - 这是一篇旧文章,我相信你已经明白了 - 但对于未来的新手来说,原因是计算机不运行 VB 代码。他们运行机器代码。当我们“编译”我们的程序时,编译器所做的就是将我们的编程语言翻译成机器代码,以便它可以被计算机执行。当您查看 EXE 或 DLL 时,您看到的是这个机器代码,而不是原始程序。把它想象成有一份英文文件。有人翻译成中文。你想知道为什么当你看中文文档时,它不再是英文了。
    【解决方案2】:

    JetBrain 的 dotPeek 标榜为免费的 .NET 反编译器和程序集浏览器对我来说非常有用:快速、简单,当然最好的是免费!

    【讨论】:

      【解决方案3】:

      市场上有许多付费工具。但我使用免费工具,不仅可以查看反汇编代码,还可以调试代码。 例如,假设有一个用 .Net 开发的 exe,我可以使用这个称为 DnSpy 的工具调试该编译代码。

      http://xyzcoder.github.io/dll_decompiling/decompiled_dll_debugging/dnspy/2018/06/07/dnSpy-For-DeCompiling,Debugging.html

      【讨论】:

        【解决方案4】:

        .NET 反射器!!!

        http://www.red-gate.com/products/dotnet-development/reflector/

        它甚至是免费的,你不需要专业版就能看到反汇编代码。

        【讨论】:

        • 如果是 VB.NET 就可以了。如果是 VB6,他就不走运了。
        • 没错,只是做了假设。
        • 致现在发现此帖子的任何人:此实用程序不再免费。
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-17
        • 1970-01-01
        • 2020-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-10-05
        相关资源
        最近更新 更多