11

MethodBodyクラスには、メソッドの本体を提供するGetILAsByteArrayメソッドがあります。このバイト配列をより理解しやすいIL命令に(リストなどに)変換することを探しています。このバイト配列を理解して変換する(または私のために行う)のに役立つリソース、オープンソースコード、またはAPIはありますか?

私はこれを見つけましたが、ジェネリックでは機能しません。私は、すべてのフレームワークバージョンでこれらのバイトを理解して変換するためのガイダンスをかなり探しています。

CLIドキュメントは、IL命令の学習にも役立ちますが、これらのバイトを意味のあるものにするためにCLIドキュメントを使用する方法がわかりません。

4

3 に答える 3

10

GetILasByteArray を使用して、よりわかりやすい命令リストを取得するための拡張メソッドを作成しました。非常に単純です。API は次のようになります。

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

実装の詳細については、私のブログ投稿をご覧ください。または、実装を取得して使用を開始することもできます。

于 2009-05-01T09:00:57.643 に答える
2

Mono.Cecil ライブラリを見てください。

于 2009-03-15T16:25:46.670 に答える
1

それは大きな仕事です。私はILリーダーの始まりを書きましたが、かなりの量のオペコードが実装されていました。しかし、それを終了する必要があります。

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

機能が充実したMONOCecilもあります。

于 2009-01-06T12:16:47.817 に答える