有比.NET Reflector更好的工具吗?

372

我过去很喜欢使用 .NET Reflector,但自从 Red Gate Software 接管后,它急剧走下坡路。现在它强制要求我更新(这绝对是荒谬的),一半的时间更新不顺利,每次更新都越来越妨碍我的工作效率。我受够了,准备寻找更好的反编译工具。是否有更好的反汇编器?


更新:

回答中提到的各种替代品清单-


159
+1,Reflector在3年前就已经满足了我所有的需求。迄今为止,这是我唯一使用过的程序,如果我不允许它在想要更新时更新自己,它就会禁用自己。Redgate把一款优秀的软件搞糟了。它可能是免费的,但由于Redgate的这种恶劣态度,我将不会再购买或推荐他们的任何软件。 - Ash
5
是的,我们原本也打算从他们那里购买几百个许可证,但现在我会建议公司使用Slimtune而不是Redgate。它更好而且是免费的。Redgate是一个非常无耻的公司,通过电子邮件骚扰我们,强迫我们购买他们的软件。在下载他们的软件时不要泄露你的电子邮件。 - Joan Venge
15
看起来这个话题又有了新的生命,因为RedGate现在要求至少支付35美元才能使用曾经免费的Reflector。真是悲伤的一天......希望.NET社区能够推出高质量的免费开源竞争对手,让我们摆脱RedGate的(实际上并不那么令人惊讶的)背信弃义。 - jrista
6
+1 - Red Gate承诺不破坏它,但看起来他们已经这样做了。我不经常使用它,所以每次使用时都必须更新。但它并没有告诉我那个--它只是问我是否应该自动更新。当我说“不”时,似乎什么也没有发生。当我说“是”时,它会下载和解压缩某些内容,然后出现一个错误,提示无法访问Reflector.exe,因为它正在使用中! - Jonathan Wood
75
公正地说,我们不能说Red Gate没有对这款软件进行改进。我使用的是付费版本,我注意到他们做了很多工作,使它比以前更慢了。 - Ryan Lundy
显示剩余10条评论
9个回答

176
还要看一下SharpDevelop的ILSpy。它目前处于早期开发阶段,他们在2月24日刚刚发布了一个版本。对我来说,这本身就很不错。从他们的网站上可以看到:

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

在Red Gate宣布免费版.NET Reflector将在2011年2月底停止存在之后,开始了开发工作。

更新:JetBrains发布了dotPeek,它是免费的.NET反编译器更新2:Telerik也有一个免费的反编译器:JustDecompile

2
刚试了一下,非常好用。请前往http://build.sharpdevelop.net/BuildArtefacts/#ILSpy获取二进制文件。 - StriplingWarrior
3
ILSpy非常棒。它做到了我以前需要使用Reflector才能实现的一切功能,而且没有设置时间炸弹或自动更新到比以前版本更差的新版本。 - Ian Kemp
2
ILSpy绝对可以与Reflector相媲美。dotPeek需要更长的加载时间,下载大小有点大。它使用空格进行缩进而不是制表符(并且没有配置选项可更改)! :D +1 - James Skemp
1
金牌颁给ILSpy,银牌颁给dotPeek,铜牌颁给JustDecompile。 - oddy
2
RedGate让我失望了,他们大幅度提高了价格,并且没有Paypal选项。当我第一次看到时,基本版的价格是20英镑,现在它是65英镑,与VS集成相比超过了一倍。 - Richard Griffiths
显示剩余6条评论

64

JetBrains将在其ReSharper中添加反编译器,并发布一个独立的反编译器工具。

好消息是,我们正在准备一个独立的二进制源代码应用程序,即一个反编译器+汇编浏览器,用于探索任何合法探索的.NET编译代码。我们没有具体的发布日期,但它将于今年发布,并且免费。当我们说“免费”时,我们实际上是指“免费”。

这里 有更多信息。

更新: JetBrains现已发布名为dotPeek的产品,可以在这里找到。


2
我刚试用了ReSharper 6 EAP(发布于2011年3月1日)。反编译功能已经集成在VS2010中,非常方便。听说独立的免费版本即将推出,但对于那些已经使用ReSharper的人来说,v6绝对是一个很好的升级,因为它增加了非常好用的反编译功能! - jrista
2
更新:JetBrains 公司推出了免费的独立反编译器 dotPeek 的早期版本。 - Jura Gorohovsky

32

我认为有三个值得关注的严肃选择,所有这些选择都是免费的:

  • ILSpy:来自制作(也是免费的)SharpDevelop IDE 的同一团队。除了是免费的之外,它还是开源的。他们正在开发的另一个扩展是能够 调试反编译代码(Reflector 的专业版可以做到这一点),这项功能非常出色。
  • JustDecompile:来自 Telerik 的独立反编译工具(今天宣布,目前处于 Beta 版)。
  • dotPeek:来自 JetBrains 的独立反编译工具(目前作为 EAP 的一部分独立发布)。

所有这些方法都以稍微不同的方式处理问题,并具有不同的用户界面。我建议你尝试它们并看看哪一个更适合你。


14

以下还有一些未提及的工具:

  • Mono Cecil:使用Cecil,您可以加载现有的托管程序集,浏览其中包含的所有类型,动态修改它们并将修改后的程序集保存回磁盘。

  • Kaliro:这是一个用于探索使用Microsoft.Net框架构建的应用程序内容的工具。

  • Dotnet IL Editor (DILE):Dotnet IL Editor (DILE)允许在没有源代码或.pdb文件的情况下反汇编和调试.NET 1.0/1.1/2.0/3.0/3.5应用程序。它甚至可以在IL级别上调试自身或.NET Framework的程序集。

  • Common Compiler Infrastructure:微软研究院通用编译器基础结构(CCI)是一组库和应用程序编程接口(API),支持编译器和相关编程工具通用的某些功能。 CCI主要由创建、修改或分析.NET可移植可执行(PE)和调试(PDB)文件的应用程序使用。


9
.NET源代码现在已经可以获取。
请参考这个链接这个链接
如果你需要反编译,我使用的是DisSharper。它对我来说已经足够好了。

酷。有人找到了下载的实际链接吗? - Jonathan Wood
6
这仅适用于框架的有限领域,绝不是反编译器的替代品。 - Camron B

6
Red Gate的最新版本是6.1。然而,5.1版本无法自动更新到6.1版本,因为服务条款发生了变化,所以您将被重定向到网站下载6.1版本。这主要是出于法律原因,您可以在以下文章中查看:Oi! What's going on with the .NET Reflector update mechanism?手动更新到6.1版本后,您将不再遇到任何问题。

6
如果唯一的解决方案是升级,那么我会寻找另一个产品。我坚持这个决定 :) - Josh Stodola
6
有些人对版本X感到满意,为什么所有的更新都要影响他们?这似乎是最近软件常见的问题。 - user117499
4
事实证明,这个产品将不再免费,当Red Gate接管Reflector时,人们可能会有这样的期望。问题是Red Gate的产品很昂贵,并且他们没有针对个人开发者的定价方案。现在RG表示Reflector将花费35美元,但我认为这只是开始,最终价格会更高。可悲的是,这将降低Reflector的市场渗透率,而这多年来一直是.NET开发人员的标准工具。希望有人能开发一个开源替代品。 - Piotr Owsiak
5
@drachenstern,问题不在于价格,而是他们食言让产品保持免费的事实。他们还会说谎什么呢?他们说$35是“永久许可证”,但是持续多久呢?直到他们再次错过季度业绩并决定更改吗? - Ryan Lundy
3
我知道你的评论是几个月前发表的,我想指出的是那时正在发生的事情与现在整个情况相吻合。我并不是说RedGate是邪恶的,尽管在这种情况下应该指出他们曾经表示会让Reflector保持免费。我的意思是35美元甚至70美元的价格并不符合其余工具的定价方案,我真的很担心Reflector将来会变得非常昂贵。即使我可能会购买它,但我将不能再告诉我的开发同行:“嘿,只需使用Reflector!” - Piotr Owsiak
显示剩余11条评论

4

我们不使用自动更新程序,而是将EXE文件的属性设置为只读。这样它就不会删除该文件。


2

我不确定你真正想要什么。如果你想查看.NET框架源代码,你可以尝试使用Netmassdownloader。它是免费的。

如果你想查看任何程序集的代码(不仅仅是.NET),你可以使用ReSharper。虽然它不是免费的。


2
代码?更好的是只输入定义,对吧? - Piotr Owsiak
你需要一个大集群来运行Resharper,但我们中的一些人喜欢在笔记本电脑上编码。 - Ivan G.

1

9Rays以前有一个反编译器,但我已经很久没有检查过了。我记得它不是免费的...

还有一个新的(至少对我来说是新的)叫做Dis#。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接