367

过去我曾经很喜欢 .NET Reflector,但自从 Red Gate Software 接手后,它就急剧走下坡路。现在它迫使我更新(这绝对是荒谬的),有一半的时间更新不顺利,而且每次更新都越来越妨碍我的工作效率。我已经厌倦了,我已经准备好迎接更好的事情了。有没有更好的反汇编程序?


更新:

答案中提到的各种替代方案列表 -

4

9 回答 9

171

还可以看看SharpDevelop 的 ILSpy。它处于开发的早期阶段,他们刚刚在 2 月 24 日发布。这本身对我来说效果很好。从他们的网站:

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

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

更新:JetBrains 发布了 dotPeek,它的免费 .NET 反编译器

更新 2:Telerik 还有一个免费的反编译器:JustDecompile

于 2011-03-23T13:45:08.120 回答
63

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

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

这里有更多信息。

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

于 2011-02-18T10:04:04.453 回答
31

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

  • ILSpy:这与制作(也是免费的)SharpDevelop IDE 的人相同。除了免费之外,它也是开源的。他们正在开发的另一个扩展是调试反编译代码的能力(Reflector 的专业版可以做到这一点),效果非常好。
  • JustDecompile:来自 Telerik 的独立反编译器(今天宣布,目前处于 Beta 版)。
  • dotPeek:来自 JetBrains 的独立反编译器(目前作为 EAP 的一部分独立提供)。

所有这些都以略微不同的方式使用不同的 UI 解决问题。我建议给他们一个尝试,看看你更喜欢哪一个。

于 2011-04-27T23:52:22.310 回答
13

其他一些这里没有提到——

  • 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 的程序集。

  • 通用编译器基础结构:Microsoft Research 通用编译器基础结构 (CCI) 是一组库和一个应用程序编程接口 (API),它支持编译器和相关编程工具所共有的一些功能。CCI 主要由创建、修改或分析 .NET 可移植可执行 (PE) 和调试 (PDB) 文件的应用程序使用。

于 2012-06-07T09:41:26.790 回答
8

.NET 源代码现在可用。

请参阅此链接

或者,如果您寻找反编译器,我使用的是DisSharper。这对我来说已经足够好了。

于 2010-04-15T15:51:38.787 回答
6

Red Gate 的最新版本是 6.1。但是 5.1 版本无法自动更新到版本 6,因为服务条款发生了变化,因此您将被重定向到该站点以下载 6.1 版本。这主要是由于法律原因,您可以查看以下帖子:

喂!.NET Reflector 更新机制是怎么回事?

手动更新到 6.1 后,您将不再遇到任何问题。

于 2010-04-16T14:23:53.283 回答
4

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

于 2010-10-15T12:39:04.333 回答
2

我不确定你在这里真正想要什么。如果您想查看 .NET 框架源代码,您可以尝试Netmassdownloader。免费。

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

于 2010-04-15T15:49:53.930 回答
1

9Rays曾经有一个反编译器,但我有一段时间没有检查。不是免费的,我记得...

还有一个新的(至少对我而言)名为 Dis#。

于 2010-04-15T15:50:37.710 回答