几年前我为客户编写了一个C#应用程序,但我不再拥有源代码。我所拥有的只是我在客户端PC上部署的EXE。有没有办法从EXE生成C#源代码?
答案 0 :(得分:187)
Reflector及其加载项FileDisassembler。
Reflector将允许查看源代码。 FileDisassembler允许您将其转换为VS解决方案。
答案 1 :(得分:136)
当Red Gate说不再有.Net Reflector的免费版本时,我开始使用ILSpy和Telerik的JustDecompile。我发现ILSpy比JustDecompile(仍处于Beta版)更准确地反编译。红门已经改变了他们的决定,仍然有.Net Reflector的免费版本,但现在我喜欢ILSpy。
来自ILSpy网站(http://www.ilspy.net/):
ILSpy是开源.NET程序集浏览器和反编译器。
<强>更新强>
2012年4月15日,ILSpy 2.0发布。与1.0版相比的新功能:
<强>更新强>
答案 2 :(得分:63)
反射器一般不再免费,但它们确实免费向开源开发人员提供:http://reflectorblog.red-gate.com/2013/07/open-source/
但像DevExtras和JetBrains这样的公司已经创造了免费的替代品:
答案 3 :(得分:34)
Reflector和Denis Bauer的File Disassembler加载项。它实际上是从程序集生成源项目,其中Reflector本身只显示反汇编的源。
增加:我最近的最爱是JetBrains'dotPeek。
答案 4 :(得分:27)
Telerik JustDecompile是免费的,并且具有从.NET程序集创建项目的功能。
答案 5 :(得分:24)
我很惊讶没有人提到微软的ildasm 。它可能不如ILSpy或Reflector那么漂亮,但它随Visual Studio一起提供,因此很多开发人员已经拥有它。
运行它(假设VS 2013,其他版本应该类似):
现在您可以导航DLL结构。双击类成员以查看IL。使用文件&gt;转储将IL导出到文件。
答案 6 :(得分:14)
你想要reflector。
答案 7 :(得分:-1)
我很惊讶没有人提到dnSpy。 dnSpy 是调试器和.NET程序集编辑器。即使没有可用的源代码,也可以使用它来编辑和调试程序集。
主要功能:
它是开源的,是点网中使用最广泛的逆向工程工具之一。