1

逆アセンブルを表示しないvsiaulc#2008 Express Editionを使用しているため、objdumpを使用してac#プログラムの逆アセンブルを理解しようとしています。

次のコマンドを実行して出力を取得しています。

objdump -S ConsoleApplication4.exe 

逆アセンブリ出力で関数コードを識別できないため、値が0x1234のダミー変数を入力しました。

 public static void myfun()
    {
        int i;
        i = 0x1234;
        Console.WriteLine(i.ToString());
    }

しかし、生成されたファイルのどこにも1234の値を見つけることができません!objdumpに-tや-Tなどの他のオプションを試しましたが、シンボルテーブルが見つからないと表示されます。誰かがobjdumpを使用して関数の逆アセンブリを表示する方法、または他の無料のツールがあるかどうかを教えてもらえますか?

編集:私はMSILの分解を知っています、私は同等のアセンブリ言語を知りたいと思いました。

4

2 に答える 2

2

アプリケーションをNGENした場合を除いて、MSILは実行時に調整されるまでx86コードにコンパイルされないため、アセンブリ言語に逆アセンブルすることは意味がありません。

于 2011-04-14T01:12:43.333 に答える
1

これがC++ではなくC#に関係している場合は、MSIL逆アセンブラを使用してください。また、.Net Reflectorをお持ちの場合、FileDisassemblerはこれにも最適なツールです。

以下は、MSIL逆アセンブラの完全な例のステップバイステップとそのmsdn記事へのリンクです。

http://www.mactech.com/articles/mactech/Vol.19/19.12/NETbinaries/index.html

http://msdn.microsoft.com/en-us/library/f7dy01k1%28v=vs.71%29.aspx

于 2011-04-14T00:57:46.500 に答える