このカテゴリの記事一覧

2014年06月23日

逆アセンブラー EXEやDLLの中身を確認

C#のソースコードをコンパイルするとEXEやDLLといったアセンブリと呼ばれる実行モジュールが生成されます。
このアセンブリはMSIL(Microsoft Intermediate Language)という中間言語で記述されており、以下のツールなどで逆アセンブルすることが可能です。

ILDASM
開発環境であるVisualStudioをインストールすると併せてインストールされる(筈)です。
ILが読めるといいのですが、知らなくてもなんとなく読めそうな気はします。
ライセンスファイルなどのリソースがちゃんと埋め込まれているのかなど簡単に確認できます。
同じフォルダにヘルプファイルもあって読み方等の説明もあります。

http://msdn.microsoft.com/ja-jp/library/f7dy01k1(v=vs.110).aspx

.NET Reflector

ILをC#までリバースしてくれるツールです。以前は無償だったのですが今は有償版のみでユーザが減りました。
トライアル版あるようです。

http://www.red-gate.com/products/dotnet-development/reflector/

ILSPY

逆アセンブルツールとして一番使われているのではないでしょうか。無償です。

http://ilspy.net/

インストール方法:上ページの右上の「Download Binaries」というボタン押下でモジュールを入手し任意のフォルダにZIPを解凍。
起動方法:解凍したフォルダにある ILSPY.EXEを起動
使用方法:覗きたいアセンブリを選択すると画面左のツリーに対象が追加されます。それを選択すると画面右側にソースコードが表示されます。
その他:実行には.NET4.0が必要です。リバースはC#5.0の文法までサポートしているそうです。

その他
こんなに簡単に逆アセンブルできるとするとセキュリティなどいろいろ問題になりそうです。
難読化ツールが必要なのも納得です。
posted by RR at 23:47 | Comment(0) | ツール | このブログの読者になる | 更新情報をチェックする