几年前,我为客户端编写了一个c#应用程序,但现在我已经没有源代码了。我所拥有的只是在客户端PC上部署的EXE。是否有一种方法可以从EXE生成c#源代码?
反射器和它的加载项FileDisassembler。
反射器将允许查看源代码。FileDisassembler将允许您将其转换为VS解决方案。
你需要反射器。
Reflector和Denis Bauer的文件反汇编程序插件。它实际上从程序集生成源项目,其中Reflector本身只显示被分解的源。
我最近最喜欢的是JetBrains的dotPeek。
Reflector在一般情况下不再是免费的,但他们确实向开源开发人员免费提供:http://reflectorblog.red-gate.com/2013/07/open-source/
但DevExtras和JetBrains等公司已经创建了免费的替代方案:
DevExtras coderreflect .
JetBrains DotPeek
Telerik JustDecompile是免费的,它有一个从。net程序集创建项目的特性。
当Red Gate说。net Reflector将不再有免费版本时,我开始使用ILSpy和Telerik的JustDecompile。我发现ILSpy的反编译比JustDecompile(仍处于测试阶段)更准确。Red Gate已经改变了他们的决定,仍然有一个免费版本的。net Reflector,但现在我喜欢ILSpy。
来自ILSpy网站(https://github.com/icsharpcode/ILSpy/):
ILSpy是开源的。net汇编浏览器和反编译器。
更新:
2012年4月15日,ILSpy 2.0发布。与1.0版相比的新特性:
我很惊讶没有人提到微软的ildasm。它可能不像ILSpy或Reflector那样漂亮,但它随Visual Studio一起提供,因此许多开发人员已经拥有它。
要运行它(假设VS 2013,其他版本应该类似):
现在可以导航DLL结构了。双击类成员查看IL。使用File > Dump将IL导出到一个文件。
我很惊讶没有人提到dnSpy。dnSpy是一个调试器和. net汇编编辑器。即使没有任何可用的源代码,也可以使用它编辑和调试程序集。
主要特点:
它是开源的,是dot net应用最广泛的逆向工程工具之一。
现在有各种各样的。net / c#反编译器可用(2022):
我更喜欢ILSpy,因为它是免费的,OSS,非常快(与其他软件相比),维护得很好,甚至被Visual Studio使用,反编译的代码是准确的。这篇博客文章在。net反编译器的丛林中详细解释了所有这些。net反编译器。