4

コンパイル済みのアセンブリがあります。そのアセンブリ内のメソッドの 1 つのメソッド実装を、私が期待するものとプログラムで比較したいと考えています。

彼らの IL を比較する方法はありますか? 任意の命令セットのバイト配列表現を取得できたとしても、問題はありません。

助けていただければ幸いです。

4

5 に答える 5

4

Mono.Cecilを使用することから始めるのがよいでしょう。Cecil は、CLR アセンブリの読み取りと変更に使用されるライブラリであり、CIL バイトコードを取得する限り、すべてのファイル解析を行います。

使用できる可能性のある別の潜在的なライブラリはBoogieです

于 2010-09-14T21:50:57.533 に答える
4

リフレクションを使用してみて、バイト配列を使用して IL を比較することができます。

このメソッドを見てみましょう: http://msdn.microsoft.com/en-us/library/system.reflection.methodbody.getilasbytearray.aspx

于 2010-09-14T21:56:54.640 に答える
3

ildasm を使用してアセンブリをダンプし、次のように 2 つのバージョンを比較できます。

ildasm /ALL /TEXT assembly1.dll > dump1.txt
ildasm /ALL /TEXT assembly2.dll > dump2.txt
fc dump1.txt dump2.txt       
于 2010-09-14T21:47:36.340 に答える
0

Visual Studio コマンド プロンプトから ildasm.exe を使用して、ildasm.exe dll 名のようなことを行うことができます。

于 2010-09-14T21:42:38.940 に答える
0

ildasmまたはReflectorを使用して、アセンブリから IL を抽出できます

于 2010-09-14T21:43:27.317 に答える