当前位置:  开发笔记 > 编程语言 > 正文

如何将.NET EXE反编译为可读的C#源代码?

如何解决《如何将.NETEXE反编译为可读的C#源代码?》经验,为你挑选了7个好方法。

几年前我为客户编写了一个C#应用程序,但我不再拥有源代码.我所拥有的只是我在客户端PC上部署的EXE.有没有办法从EXE生成C#源代码?



1> GEOCHET..:

Reflector及其加载项FileDisassembler.

Reflector将允许查看源代码.FileDisassembler允许您将其转换为VS解决方案.


当我在FileDisassembler上做出答案时,FileDisassembler上的帖子出现了页面刷新:-)你赢了.
我的Reflector副本有一个"导出..."选项,我没有安装插件.它创建了一个包含所有源代码和资源的VS项目.那么为什么每个人都建议使用FileDisassembler?这个比较好?

2> Daniel..:

当Red Gate说不再有.Net Reflector的免费版本时,我开始使用ILSpy和Telerik的JustDecompile.我发现ILSpy比JustDecompile(仍处于Beta版)更准确地反编译.红门已经改变了他们的决定,仍然有.Net Reflector的免费版本,但现在我喜欢ILSpy.

来自ILSpy网站(http://www.ilspy.net/):

ILSpy是开源.NET程序集浏览器和反编译器.

ILSpy功能

装配浏览

IL反汇编

反编译为C#

支持lambdas和'收益率'

显示XML文档

节省资源

搜索类型/方法/属性(子串)

基于超链接的类型/方法/属性导航

基础/派生类型导航

导航历史

BAML到XAML反编译器

将程序集另存为C#项目

查找字段/方法的用法

可扩展的插件(MEF)

更新:

2012年4月15日,ILSpy 2.0发布.与1.0版相比的新功能:

装配清单

支持反编译表达式树

支持在nullables上提升操作员

反编译为Visual Basic

搜索由空格分隔的多个字符串(在ILSpy.exe中搜索"Assembly manager"会找到AssemblyListManager)

单击局部变量将突出显示该变量的所有其他事件

Ctrl + F可用于在反编译代码视图中进行搜索

更新:

ILSpy 2.1支持异步/等待反编译



3> 小智..:

Reflector一般不再免费,但他们确实免费向开源开发人员提供:http: //reflectorblog.red-gate.com/2013/07/open-source/

但是像DevExtras和JetBrains这样的公司创造了免费的替代品:

DevExtras CodeReflect

JetBrains DotPeek


值得将Telerik JustDecompile添加到免费的.NET程序集反编译器列表中.http://www.telerik.com/justdecompile
反射器就像是35美元.打破银行,我知道,但它的价值是10倍.
@StingyJack:很好,看起来他们听到了你的声音!如果你想要VS2012反汇编程序,现在实际价格为368美元.:/

4> ProfK..:

Denis Bauer的Reflector和File Disassembler插件.它实际上是从程序集生成源项目,其中Reflector本身只显示反汇编的源代码.

ADDED:我最近的最爱是JetBrains的dotPeek.



5> 小智..:

Telerik JustDecompile是免费的,具有从.NET程序集创建项目的功能.



6> yoyo..:

我很惊讶没人提到微软的ildasm.它可能不如ILSpy或Reflector那么漂亮,但它随Visual Studio一起提供,因此许多开发人员已经拥有它.

运行它(假设VS 2013,其他版本应该类似):

    选择"开始">"所有程序">"Visual Studio 2013"​​>"Visual Studio工具".

    双击VS2013的开发人员命令提示符.

    从生成的命令提示符运行"ildasm".

    在该工具中,选择"文件">"打开",然后打开可执行文件或DLL.

现在您可以导航DLL结构.双击类成员以查看IL.使用"文件">"转储"将IL导出到文件.


我从未声称ildasm是那里最好的选择,只有它可用并且有效.¯\ _(ツ)_ /¯

7> Luke Halliwe..:

你想要反射器.

推荐阅读
勤奋的瞌睡猪_715
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有