.NET Reflector for Mono

19

有没有类似于.NET Reflector的工具可以用于Mono呢?我通过快速搜索并没有找到相关信息。或者说,我能否在Mono上运行Reflector(比如在Mac OS X上)?

6个回答

14

当我在寻找一个Mono反编译器时,我发现了这个页面并测试了答案:

  • Mono.Cecil效果很好,但它是一个库,而我正在寻找一个GUI
  • ILSpy不在Mono(Linux)下运行,因为它使用WPF。 .NET CodeReflect,JustDecompile和dotPeek也是如此。
  • 也许Reflector可以工作,但我真的不想付费去了解

最后,我发现直接在MonoDevelop中反编译程序集是可能的


3
你是如何直接在MonoDevelop中反编译程序集的?我不知道怎么做。 - user396070
7
@Micah Delane Bolen,这当然值得单独提出一个问题,但这一次我会慷慨一些 :) 将你的dll文件添加为项目的引用。然后双击引用,MonoDevelop会展示给你反编译的代码。 - Nicolas
3
我能看到MonoDevelop的界面,但无法看到反编译后的代码。 - user430788
1
@user430788 你需要在程序集导航器的右上角选择C#语言。 - antoyo
更简单的方法是,在新的MonoDevelop实例中“文件->打开”DLL文件,然后按照@antoyo所说的做即可。无需创建项目/添加引用。 - Omer Tuchfeld

10

如果关闭“显示PDB符号”选项,则Reflector在Mono上(包括旧版本)可以正常工作。

Miguel de Icaza曾经在他的博客中谈到过这个问题。


令我惊讶的是,你是对的,在 Mac OS X 上它确实可以工作!!!只需在终端中执行“mono reflector.exe”即可!!! - Andriy Volkov
你如何在没有Windows的情况下获取reflector.exe?目前,它们的下载是一个安装程序,在mono下无法运行。 - Eliot
@Eliot 复制它 - 旧版本是zip部署... - Reed Copsey
@Reed 你假设我有一份Windows的副本。;) 但是没错,我会在有机会的时候尝试一下。 - Eliot

4

ILSPY 的表现相当不错,我已将其添加到 O2 平台中,并且现在每天都在使用它(而不是 Reflector)。 - Dinis Cruz
2
我尝试了IlSpy,但它告诉我与Reflector相同的信息**(ILSpy.exe:10897): WARNING :以下程序集是从**/ilSpy/ILSpy.exe引用但无法加载: Assembly: PresentationFramework (assemblyref_index=5) Version: 4.0.0.0 Public Key: 31bf3856ad364e35 该程序集在全局程序集缓存、MONO_PATH环境变量列出的路径或执行程序集(****/ilSpy/)所在位置中均未找到。 - Arne
ILSpy基于WPF,目前还不能在Mono上运行。 - Lex Li
你可以将它用作命令行应用程序,例如请参阅 https://github.com/andreif/ILSpyMono - Andrei

2

2

有人尝试过Mono Cecil吗?

使用Cecil,您可以加载现有的托管程序集,浏览其中包含的所有类型,在运行时修改它们,并将修改后的程序集保存回磁盘;可能比Reflector还要强大!

我即将对其进行审查。


1

反射器6.0不支持Mono,只有5.1.7版本支持Mono。

使用mono reflector.exe /compat命令。

:)


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