用于从字节数组中获取IL的API

时间:2009-01-06 12:02:03

标签: cil

MethodBody类中有一个GetILAsByteArray方法,它给出了方法的主体。我正在寻找将此字节数组转换为更易理解的IL指令(进入List或类似的东西)。有哪些资源,开源代码或api可以帮助我理解和转换这个字节数组(或者为我做这些)?

我发现了这个,但它不适用于泛型。我几乎都在寻找指导来转换所有框架版本中的这些字节。

CLI文档也有助于学习IL指令,但我看不到如何使用它来使这些字节有意义。

3 个答案:

答案 0 :(得分:9)

我刚刚编写了一个扩展方法,以使用GetILAsByteArray获得更易理解的指令列表。这很简单,API就像:

public static IList<Instruction> GetInstructions (this MethodBase self);

您可以在我的blog post中详细了解该实施。或者你可以去implementation并开始使用它。

答案 1 :(得分:2)

查看Mono.Cecil库。

答案 2 :(得分:1)

这是一项艰巨的任务。我写了一个IL读者的开头,它实现了相当多的操作码:但你需要完成它。

http://svn.ensemble-os.org/tags/OldOCJ/CIL/

还有MONO Cecil,功能齐全。