2012-02-12 8 views
4

C#コードからアセンブリコードを生成する方法はありますか?私はそれがGASでCコードで可能であることを知っていますが、C#で可能なら誰でも知っていますか?C#コードからアセンブリコードを生成しますか?

+0

私はあなたが何を求めているのか不明です。 C#をアセンブリにコンパイルするか、アセンブリを出力するC#プログラムを記述しますか? – perelman

+0

アセンブリでC#コードがどのように見えるかを見たいと思います。教育目的のため。今すぐアセンブリクラスを取る。 – dsta

答えて

2

通常、C#は.NETバイトコード(CIL or MSIL)にコンパイルされ、次にプログラムが実際に実行されるときにネイティブコードにコンパイルされたJIT( "ジャストインタイム")にコンパイルされます。 C#用のコンパイラは、先にMono's AOTのように先に存在しているので、それらのうちの1つを使ってC#プログラムをコンパイルしてから、逆アセンブルすることもできます。その結果は非常に困難である可能性が高い。

ILdasmを使用してC#プログラムの.exeをコンパイルすると、CPUのアセンブリコードよりも若干高いバイトコードを調べることができます。

2

C#コードはMSIL(MS Intermediate Language)にコンパイルされます。これは実際にはCコンパイラから得られるasm-codeではありません。 .NET Frameworkアプリケーションの実行方法の詳細については、こちらをご覧ください。

生成されたILコードを見たい場合は、this questionを参照してください。

2

NGENツールを使用してこれを間接的に行うことができます。次に、生成されたバイナリを逆アセンブルします。また、デバッガを使用してMSILから作成されたJITコードを検査することもできます。Ollydbg 2は、このようなデバッガの1つです。

関連する問題