存在哪些CLR/.NET字节码工具?

Ale*_*ler 7 .net clr il bytecode

我非常了解用于操作,生成,反编译JVM字节码(ASM,cglib,jad等)的Java工具.CLR字节码有哪些类似的工具?人们为CLR做字节码操作吗?

Cod*_*ous 14

反射器总是很好,但Mono.Cecil是你可能要求的最佳工具.它以任何方式操纵CIL都是非常宝贵的.


Sun*_*wen 7

Mono.Cecil是一个像ASM这样的伟大工具.这是Mono的子项目,完全开源.它甚至提供了比System.Reflection 更好的功能.


the*_*off 2

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

.NET 语言不是编译为类似字节码的结构,而是编译为中间语言(事实上,它的名称就是 IL)。

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

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

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

如果您想了解有关 .NET AOP 工具的更多信息,我建议您提出另一个问题(这是一个完全不同的问题)。

还有几本书可以教您 IL 的细节。这不是一门非常复杂的语言。

  • “NET 程序集在如何存储执行指令方面的工作方式非常不同”,不,它们没有......所有内容最终都编译为“二进制格式”。这种二进制格式与IL一一对应。 (8认同)