【问题标题】:What CLR/.NET bytecode tools exist? [closed]存在哪些 CLR/.NET 字节码工具? [关闭]
【发布时间】:2010-09-12 12:40:27
【问题描述】:

我非常了解用于操作、生成、反编译 JVM 字节码的 Java 工具(ASM、cglib、jad 等)。 CLR 字节码有哪些类似的工具?人们是否为 CLR 进行字节码操作?

【问题讨论】:

    标签: .net clr bytecode il


    【解决方案1】:

    Reflector 总是很好,但 Mono.Cecil 是您可能要求的最好的工具。它对于以任何方式操纵 CIL 都是非常宝贵的。

    【讨论】:

      【解决方案2】:

      Mono.Cecil 是像 ASM 一样的出色工具。它是 Mono 的一个子项目,并且完全开源。它甚至比 System.Reflection 提供了better feature

      【讨论】:

        【解决方案3】:

        想到ILDASMReflector

        【讨论】:

          【解决方案4】:

          字节码是一种二进制格式。 .NET 程序集在存储执行指令的方式上大不相同。

          .NET 语言不是编译成类似字节码的结构,而是编译成一种中间语言(实际上,它只是被称为--IL)。

          这是一种人类可读的语言,看起来有点像面向对象的汇编程序版本。

          因此,在检查或操作单个程序集的 IL 方面,Reflector 和 ILDASM 等工具可让您方便地查看任何程序集的 IL。

          操作有点不同,我建议看看 .NET 空间中的一些 AOP 工具。我还建议看看 Phoenix,这是 MS 正在开发的一个编译器项目。它有一些非常酷的编译后操作功能。

          如果您想了解更多关于 .NET AOP 工具的信息,我建议您打开另一个问题(那是完全不同的蠕虫)。

          还有几本书会教你 IL 的来龙去脉。这不是一门很复杂的语言。

          【讨论】:

          • “NET 程序集在存储执行指令方面的工作方式非常不同”不,他们没有......一切最终都被编译成“二进制格式”。这种二进制格式与 IL 是一一对应的。
          【解决方案5】:

          NDepend 允许您进行 .NET 程序集静态分析(代码指标、依赖性分析等)。 NDepend 对于使用依赖矩阵、依赖图和树形图指标了解 .NET 程序集的结构非常有用visualizations

          它还与 Reflector 集成:例如,您可以分别使用 Type/Method Rank metric(类似于 Google Page Rank 的代码度量)检测程序集中的重要类型和方法,并直接从 NDepend 跳转到 Reflector在 C#、VB.NET 等中获取反汇编代码。

          【讨论】:

            猜你喜欢
            • 2010-11-24
            • 2010-10-05
            • 1970-01-01
            • 1970-01-01
            • 2010-11-10
            • 1970-01-01
            • 2010-10-18
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多