有没有比.NET Reflector更好的东西?[已关闭]
有没有比.NET Reflector更好的东西?[已关闭]
过去我非常喜欢使用.NET反编译器,但自从Red Gate Software接手之后,它的质量急剧下降。现在它强制我更新(这绝对荒谬),更新经常不顺利,并且每次更新都越来越妨碍我的工作效率。我受够了,我想找一个更好的反编译工具。有更好的反编译器吗?
更新:
以下是回答中提到的各种替代方案:
- ILSpy
- dotPeek
- JustDecompile
- DisSharper
- Mono Cecil
- Kaliro
- Dotnet IL Editor (DILE)
- Common Compiler Infrastructure
问题出现的原因是作者想寻找一个比.NET Reflector更好的替代品。解决方法是作者列举了三个免费的替代品供读者选择。
在我看来,有三个严肃的替代品值得关注,它们都是免费的:
1. ILSpy: 这个工具是由制作免费的 SharpDevelop IDE 的同一团队开发的。它不仅免费,而且是开源的。他们正在开发一个额外的扩展,允许对反编译代码进行调试(这是.NET Reflector的专业版可以做到的),而且效果出奇地好。
2. JustDecompile: 这是 Telerik 推出的一个独立反编译工具(今天刚发布,目前还在测试阶段)。
3. dotPeek: 这是 JetBrains 推出的一个独立反编译工具(目前作为 EAP 的一部分单独提供)。
所有这些工具都以稍微不同的方式解决这个问题,并有不同的用户界面。我建议尝试一下它们,看看哪一个是你喜欢的。
由于JetBrains宣布将在ReSharper中添加一个反编译器,并发布一个独立的反编译器,所以出现了“有什么比.NET Reflector更好的工具?”这个问题。JetBrains将发布一个免费的独立反编译器,该工具将允许用户浏览任何合法的.NET编译代码。虽然目前还没有具体发布日期,但该工具将在今年发布,并且是免费提供的。
JetBrains最近发布了一个名为dotPeek的产品,它是一个独立的免费反编译器。用户可以在JetBrains的官方网站上找到并下载该工具。
根据用户的反馈,ReSharper 6 EAP(2011年3月1日发布)中的反编译功能已经非常方便,并且与VS2010集成在一起。虽然JetBrains表示即将发布独立的免费版本,但对于那些已经使用ReSharper的用户来说,v6版本中的反编译功能已经非常好用。
总结起来,JetBrains宣布将在ReSharper中添加反编译器,并发布一个免费的独立反编译器,以替代.NET Reflector。这个问题的解决方法是使用JetBrains的dotPeek工具,这是一个免费的独立反编译器,可以在JetBrains的官方网站上下载。
有一个叫做ILSpy的东西,你可以看一下。它是一个开源的.NET程序集浏览器和反编译器。它的开发是在Red Gate宣布免费版本的.NET Reflector将在2011年2月底停止存在之后开始的。
更新:JetBrains发布了dotPeek,它是免费的.NET反编译器。
更新2:Telerik也有一个免费的反编译器,叫做JustDecompile。
我刚试用了一下ILSpy,效果很好。你可以在build.sharpdevelop.net/BuildArtefacts/#ILSpy下载二进制文件。
ILSpy非常好用,它可以完成我之前需要.NET Reflector来做的所有事情,而且没有时间限制或自动更新到比之前版本还差的新版本。
ILSpy绝对可以与Reflector媲美。dotPeek加载时间较长,下载大小较大。而且它使用空格缩进而不是制表符(并且没有配置选项可进行更改)!:D +1
金牌给了ILSpy,银牌给了dotPeek,铜牌给了JustDecompile。
值得注意的是,如果你点击SourceForge上的“Files”部分,你可以单独安装ILSpy,一些链接会建议你必须安装所有的SharpDevelop才能反编译为C# - 事实上,你只需要安装ILSpy就可以了。
RedGate让我失望了,因为他们大幅提高了价格,并且没有PayPal选项。当我第一次看到时,基本版本的价格是20英镑。现在是65英镑,VS集成的价格更是翻了一倍多。
值得注意的是,截至2015年1月,这些工具都没有提供比最后一个免费版本的Reflector(0.6)更好的VB.NET反编译功能。它们都有一些问题,但Reflector的问题仍然是最小的。
我刚刚注意到我一直在提到Reflector 0.6,但实际上我是指的Reflector 6.8.2.5(它的程序集版本号为5.0.0.0)。我确定我在其他地方也提到了这个错误的版本,但是谷歌和Stack Overflow的搜索没有找到。
试试使用ILSpy搜索反编译的代码吧,祝你好运!
现在ILSpy的状态如何?
我试用了ILSpy和dotPeek,两者都完美地工作。我用dotPeek的GUI和ILSpy的自动化。对于自动化来说,ILSpy非常完美,因为安装(dotnet tool install ilspycmd -g)和命令行使用(ilspycmd file.dll -p -o D:\tmp\ddl_extract)都很容易。