dnSpy はデバッガ兼 .NET アセンブリエディタです。ソースコードがなくてもアセンブリの編集やデバッグが可能です。主な機能:
- .NET および Unity アセンブリのデバッグ
- .NET および Unity アセンブリの編集
- ライトテーマとダークテーマ
詳細は以下をご覧ください


バイナリ
https://github.com/dnSpy/dnSpy/releases
ビルド
git clone --recursive https://github.com/dnSpy/dnSpy.git
cd dnSpy
# または dotnet build
./build.ps1 -NoMsbuild
Unity ゲームをデバッグするには、このリポジトリも必要です: https://github.com/dnSpy/dnSpy-Unity-mono (または https://github.com/dnSpy/dnSpy/releases/unity からバイナリを入手してください)
デバッガ
- .NET Framework、.NET、Unity ゲームアセンブリのデバッグ、ソースコード不要
- ブレークポイントの設定、任意のアセンブリへのステップイン
- ローカル変数、ウォッチ、自動変数ウィンドウ
- 変数ウィンドウでは変数(例: 復号化されたバイト配列)をディスクに保存したり、16進エディタ(メモリウィンドウ)で表示可能
- オブジェクト ID
- 複数プロセスを同時にデバッグ可能
- モジュール読み込み時にブレーク
- トレースポイントと条件付きブレークポイント
- ブレークポイントとトレースポイントのエクスポート/インポート
- コールスタック、スレッド、モジュール、プロセスウィンドウ
- スローされた例外でブレーク(1st chance)
- 変数ウィンドウで C# / Visual Basic 式の評価が可能
- 動的モジュールのデバッグ(ただし動的メソッドは CLR の制限により不可)
- 出力ウィンドウに各種デバッグイベントを記録、デフォルトでタイムスタンプ表示 :)
- 実行時に自己復号化するアセンブリもデバッグ可能。dnSpy はメモリ上のイメージを使用します。また、常にディスクファイルではなくメモリイメージを使用するよう強制することもできます。
- 公開 API。拡張機能を作成したり、C# Interactive ウィンドウを使用してデバッガを制御可能
アセンブリエディタ
- すべてのメタデータを編集可能
- IntelliSense を使用して C# または Visual Basic でメソッドやクラスを編集、ソースコード不要
- C# または Visual Basic で新しいメソッド、クラス、メンバーを追加
- IL エディタによる低レベル IL メソッド本体の編集
- 低レベルのメタデータテーブルを編集可能(内部では 16 進エディタを使用)
16進エディタ
- 逆コンパイルコード内のアドレスをクリックすると、16進エディタ内の該当 IL コードにジャンプ
- その逆: 16進エディタ内の IL 本体で F12 キーを押すと、逆コンパイルコードやその他の高レベル表現にジャンプ。パッチが変更したステートメントを特定するのに便利
- .NET メタデータ構造と PE 構造をハイライト表示
- ツールチップで選択した .NET メタデータ / PE フィールドの詳細情報を表示
- 位置、ファイル、RVA への移動
- .NET メタデータトークン、メソッド本体、#Blob / #Strings / #US ヒープオフセット、#GUID ヒープインデックスへの移動
- 参照の追跡 (Ctrl+F12)
その他
- BAML 逆コンパイラ
- ブルー、ライト、ダークテーマ(およびダークハイコントラストテーマ)
- ブックマーク
- C# Interactive ウィンドウを使用した dnSpy のスクリプト操作
- アセンブリ内のクラス、メソッド、文字列などの検索
- クラスやメソッドの使用状況分析、呼び出し元の検索など
- 複数タブとタブグループ
- 参照のハイライト表示、Tab / Shift+Tab で次の参照へ移動
- エントリポイントとモジュール初期化子への移動コマンド
- メタデータトークンまたはメタデータ行への移動コマンド
- コードツールチップ(C# および Visual Basic)
- プロジェクトへのエクスポート
dnSpyが使用するその他のオープンソースライブラリ
- ILSpy 逆コンパイルエンジン (C# および Visual Basic 逆コンパイラ)
- Roslyn (C# および Visual Basic コンパイラ)
- dnlib (.NET メタデータリーダー/ライター、難読化アセンブリも読み取り可能)
- VS MEF (高速な MEF で起動時間短縮)
- ClrMD (CorDebug API では提供されない低レベルデバッグ情報へのアクセス)
- Iced (x86/x64 逆アセンブラ)
dnSpyの翻訳
dnSpy をあなたの母国語に翻訳したい場合は、こちらをクリックしてください。
Wiki
ビルド手順などのドキュメントは Wiki をご覧ください。
ライセンス
dnSpy は GPLv3 のもとでライセンスされています。