[英]How do I decompile a .NET EXE into readable C# source code?
几年前我为一个客户写了一个 C# 的应用程序,但我已经没有源代码了。 我所拥有的只是部署在客户 PC 上的 EXE。 有没有办法从 EXE 生成 C# 源代码?
Reflector及其插件FileDisassembler 。
反射器将允许查看源代码。 FileDisassembler 将允许您将其转换为 VS 解决方案。
当 Red Gate 说不再有免费版本的 .Net Reflector 时,我开始使用ILSpy和 Telerik 的JustDecompile 。 我发现 ILSpy 比 JustDecompile(仍处于 Beta 版)更准确地反编译。 Red Gate 改变了他们的决定,仍然有一个免费版本的 .Net Reflector,但现在我喜欢 ILSpy。
从 ILSpy 网站( https://github.com/icsharpcode/ILSpy/ ):
ILSpy是开源的 .NET 程序集浏览器和反编译器。
更新:
2012年4月15日,ILSpy 2.0发布。 与 1.0 版相比的新特性:
更新:
Reflector 通常不再免费,但他们确实向开源开发人员免费提供: http : //reflectorblog.red-gate.com/2013/07/open-source/
但是像 DevExtras 和 JetBrains 这样的一些公司已经创建了免费的替代品:
Reflector 和来自 Denis Bauer 的File Disassembler插件。 它实际上从程序集生成源项目,其中 Reflector 本身仅显示反汇编的源。
Telerik JustDecompile是免费的,并且具有从 .NET 程序集创建项目的功能。
我很惊讶没有人提到微软的ildasm 。 它可能不如 ILSpy 或 Reflector 漂亮,但它随 Visual Studio 一起提供,因此许多开发人员已经拥有它。
运行它(假设 VS 2013,其他版本应该类似):
现在您可以浏览 DLL 结构。 双击班级成员以查看 IL。 使用 File > Dump 将 IL 导出到文件。
你想要反射器。
现在有各种 .NET / C# 反编译器可用(2022):
我更喜欢 ILSpy,因为它是免费的,OSS,非常快(与其他软件相比),维护得很好,它甚至被 Visual Studio 使用,并且反编译代码是准确的。 这篇博文在 .NET 反编译器的丛林中详细解释了所有这些 .NET 反编译器。
我很惊讶没有人提到dnSpy 。 dnSpy是一个调试器和 .NET 程序集编辑器。 即使您没有任何可用的源代码,您也可以使用它来编辑和调试程序集。
主要特点:
它是开源的,也是 dot net 中使用最广泛的逆向工程工具之一。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.