コンテンツにスキップ

ILSpy - .NET デコンパイラ チートシート

ILSpy - .NET デコンパイラ チートシート

ILSpy はオープンソースの**.NET アセンブリブラウザーおよびデコンパイラー**。コンパイルプロセスをリバース、Microsoft Intermediate Language(MSIL/CIL)を読める高レベルの C#(および他の言語)に変換します。マルウェア分類からソースなしのサードパーティライブラリのデバッグまで、.NET バイナリを検査、分析、リバースエンジニアリングするための標準の無料ツールです。Windows GUI、クロスプラットフォーム Avalonia アプリ、VS Code 拡張機能、ilspycmd CLI として実行されます。

インストール

バリアント方法
Windows GUIGitHub Releases からインストーラー/zip をダウンロード
クロスプラットフォーム GUIAvaloniaILSpy ビルド(Linux/macOS)
CLI(ilspycmddotnet tool install --global ilspycmd
VS Code「ILSpy .NET Decompiler」拡張機能をインストール
CLI を確認ilspycmd --version

GUI エッセンシャル

アクション方法
アセンブリを開くFile → Open、または .dll/.exe をドラッグ
依存関係を読み込みILSpy は参照されたアセンブリを自動的に解決
ナビゲートツリーを展開:アセンブリ → 名前空間 → 型 → メンバー
メンバーをデコンパイルクリック;C# がメインペインに表示
使用方法を分析右クリック → Analyze(誰がこれを呼び出し/使用するか)
検索Ctrl+F / 検索ボックスで型とメンバーを検索
言語バージョンを変更ツールバードロップダウン(C# 1.0 … 最新)
デコンパイルされたプロジェクトを保存File → Save Code(完全な .csproj をエクスポート)

分析(相互参照)

右クリック → Analyze が表示
Instantiated By
Used By
Assigned By / Read By(フィールド)
Overridden By / Overrides
Exposed By

これは RE ワークフローの中核:疑わしいメソッドを選び、誰がそれを呼び出し、何に触れるかをトレース。

ilspycmd(コマンドライン)

コマンド説明
ilspycmd Assembly.dllアセンブリ全体をデコンパイルして標準出力に
ilspycmd -o out/ Assembly.dllディレクトリにデコンパイル
ilspycmd -p -o proj/ Assembly.dllコンパイル可能な .csproj プロジェクトをエクスポート
ilspycmd -t Namespace.Type Assembly.dll単一の型をデコンパイル
ilspycmd -il Assembly.dllC# の代わりに raw IL を表示
ilspycmd -lv CSharp10_0 Assembly.dllC# 言語バージョンを設定
ilspycmd --nested-directories -p -o out/ A.dll名前空間をフォルダーとしてミラー
ilspycmd -r LIBDIR Assembly.dllアセンブリ参照検索パスを追加

メタデータ & リソースを検査

ターゲット方法
埋め込みリソースTree → Resources ノード;Save で抽出
メタデータテーブルView → 「Metadata」(raw テーブル、トークン)
文字列/IL言語ドロップダウンを IL に切り替え
PInvoke/ネイティブメソッドシグネチャに表示

一般的なワークフロー

# 疑わしい .NET サンプルを分類:全ソースダンプを grep
ilspycmd -o sample_src/ suspicious.dll
grep -rin "DownloadString\|FromBase64String\|Process.Start" sample_src/

# 紛失したソースの DLL から構築可能なプロジェクトを復旧
ilspycmd -p -o recovered/ MyLib.dll

# C# デコンパイルが難読化されている場合、raw IL を見て
ilspycmd -il obfuscated.dll | less

強力に難読化されたアセンブリの場合、ILSpy を難読化除去ツール(例:de4dot)とペアリングしてから、クリーンなバイナリをデコンパイル。

ILSpy vs その他の .NET ツール

ツールタイプ注釈
ILSpyデコンパイラー + ブラウザー無料、オープンソース、CLI + GUI
dnSpy / dnSpyExデコンパイラー + デバッガーアセンブリを編集 & デバッグ
dotPeekデコンパイラー無料(JetBrains)、Windows
ILDASMディスアセンブラーIL のみ、.NET SDK に付属

リソース