スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
新しい記事を書く事で広告が消せます。
ILSpy(2)基本的な使い方
C#やVB.NETで作られたソフトやライブラリを解析、逆コンパイルできる、ILSpyの基本的な使い方です。
UIなどについての説明です。
インストール法についてはこちらの記事を参考にしてください。
ちなみに、.NETで最初からよく使われているものは、ほとんどmscorlibの中にあります。stringなどの基本型もそうです。初期であるものを探す場合、その中を探して見ましょう。

[File]=>[開く]
ここだけ、なぜか日本語です。
先ほどのツールバーの、3と同じで、.NETアセンブリを指定します。
[File]=>[Open from GAC]
GAC(グローバル・アセンブリ・キャッシュ)から読み込みます。GACは簡単に言うと参照の追加で一覧表示されているもので、どの.NETのソフトからも参照できます。
最初から用意されている、System.Drawingや、System.Windows.FormsもGACにあり、ここから追加できます。
詳しくは、アセンブリのロードあたりを参考にしてみてください。
[File]=>[Reload]
ツールバーと同じくすべてのアセンブリを再読み込みします。
[File]=>[Save Code]
現在開いているファイルをファイルに保存します。選択すると、保存ダイアログが表示されます。
[File]=>[Exit]
ソフトを終了します
[View]=>[Show internal types and members]
ツールバーのものと同じです。
[View]=>[Show analyzer]
右側に、Analyzerと書かれたスペースが出現します。よくわかりませんorzわかりしだい書きます。
[View]=>[Option]
オプションの設定をします。
->[Decompile anonymous methods/lambdas](匿名メソッド/ラムダ式をデコンパイルする)
匿名メソッド/ラムダ式があった場合、それを使ったコードを表示します。これにチェックをつけないとぐちゃぐちゃなコードが出力されてしまいます。
->[Decompile enumerators (yield return)](列挙子(yield return)をデコンパイルする)
yield returnを使ったforeachで使える列挙できる型を返す関数がある場合、yield returnを使います。
これもつけないとかなりわかりにくいコードになります。
->[Decompile query expressions](クエリ式をデコンパイル)
LINQをメソッド式ではなく、クエリ形式にします。詳しくは、事項あたりで解説。
[Help]=>[About]
バージョン情報を表示します。起動時に表示されているのと同じです。
これだけです。
操作は簡単なので、すぐに慣れると思います。
気になる処理をしているメソッドを思い出して、どうなっているのか見てみてください。
新しい発見があるかもしれません
次回、具体的な逆コンパイル例などをやります。
UIなどについての説明です。
インストール法についてはこちらの記事を参考にしてください。
基本的な使い方
- メインメニューです。詳しくは後へ。
- 各種機能へアクセスするツールバーです。
- Back : 前に開いたページに戻ります
- Forward : (<=)で前に戻ったときに、先に進みます
- Open : .NETアセンブリーファイル(C#やVB.NETなどでコンパイルされたファイル)を指定して、解析します。.NETではないファイルを選択すると、解析はできず、右側のスペースに例外が表示されます。
- Reload all assemblies: 解析されているアセンブリーをすべて読み込み直します。
- Show internal types and members : インターナルなタイプとメンバーを表示する。これのチェックをはずすと、アクセス修飾子がinternalなクラスや構造体、名前空間が表示されなくなります。メソッドやプロパティは表示されたままのようです
- 表示する内容を、C#かILか選びます。
- 読み込んだアセンブリの一覧が表示されるツリービューです。
[+]を押すと、その中の名前空間、クラス、構造体、メソッド、プロパティ、フィールドなどを表示します。
また、リソースも表示されます。
それらをクリックすると、(5)に内容が表示されます。(2)の6の指定によって、ILかC#で表示されます。 - アセンブリを絞り込みます。
たとえば、TextBoxクラスを検索したければ、TextBoxと入れましょう。
System.Drawingなどと指定すると、名前空間も検索できます。しかし、System.Drawing.Pointのようにクラス、構造体まで一度に指定することはできないようです。もちろん、メソッド、プロパティなどの名前も検索できます。
また、大文字小文字は区別しないようです。
C#で特別な使い方ができるものは、その名前で表示されています。たとえば、System.Stringはstring、System.Int32はintになります。 - ツリービューで選択をすると、ここに表示されます。
クラス名などをクリックすると、その場所に飛んで表示してくれます。(4)で絞込みをしているとそこの部分には飛んでくれません。絞込みを行っていたら、解除しておきましょう。
左の[+]を押すと関数なども展開されて、逆コンパイルした結果を見られます。
ちなみに、.NETで最初からよく使われているものは、ほとんどmscorlibの中にあります。stringなどの基本型もそうです。初期であるものを探す場合、その中を探して見ましょう。
メインメニュー
続いて、メニューの中身です。[File]=>[開く]
ここだけ、なぜか日本語です。
先ほどのツールバーの、3と同じで、.NETアセンブリを指定します。
[File]=>[Open from GAC]
GAC(グローバル・アセンブリ・キャッシュ)から読み込みます。GACは簡単に言うと参照の追加で一覧表示されているもので、どの.NETのソフトからも参照できます。
最初から用意されている、System.Drawingや、System.Windows.FormsもGACにあり、ここから追加できます。
詳しくは、アセンブリのロードあたりを参考にしてみてください。
[File]=>[Reload]
ツールバーと同じくすべてのアセンブリを再読み込みします。
[File]=>[Save Code]
現在開いているファイルをファイルに保存します。選択すると、保存ダイアログが表示されます。
[File]=>[Exit]
ソフトを終了します
[View]=>[Show internal types and members]
ツールバーのものと同じです。
[View]=>[Show analyzer]
右側に、Analyzerと書かれたスペースが出現します。よくわかりませんorzわかりしだい書きます。
[View]=>[Option]
オプションの設定をします。
->[Decompile anonymous methods/lambdas](匿名メソッド/ラムダ式をデコンパイルする)
匿名メソッド/ラムダ式があった場合、それを使ったコードを表示します。これにチェックをつけないとぐちゃぐちゃなコードが出力されてしまいます。
->[Decompile enumerators (yield return)](列挙子(yield return)をデコンパイルする)
yield returnを使ったforeachで使える列挙できる型を返す関数がある場合、yield returnを使います。
これもつけないとかなりわかりにくいコードになります。
->[Decompile query expressions](クエリ式をデコンパイル)
LINQをメソッド式ではなく、クエリ形式にします。詳しくは、事項あたりで解説。
[Help]=>[About]
バージョン情報を表示します。起動時に表示されているのと同じです。
これだけです。
操作は簡単なので、すぐに慣れると思います。
気になる処理をしているメソッドを思い出して、どうなっているのか見てみてください。
新しい発見があるかもしれません
次回、具体的な逆コンパイル例などをやります。
- 関連記事
- ILSpy(3)逆コンパイルの結果 (04/23)
- ILSpy(2)基本的な使い方 (04/23)
- 無料のILSpyを使ってソースを逆コンパイルする (04/21)
コメント
ここをクリックしてコメントを投稿
トラックバック
http://tinqwill.blog59.fc2.com/tb.php/22-adafd2c5