mcpField
I
ilspy-decompile

ilspy-decompile

github.com/aaronontheweb開発1.2k615 回インストール今日更新
リポジトリ

ilspy-decompile について

ILSpy でコンパイル済み .NET アセンブリを調べるスキルです。アセンブリの検索から、全体、特定の型、IL コードの逆コンパイルまでを案内します。

主な機能

  1. 01アセンブリを標準出力へ逆コンパイル
  2. 02出力をフォルダーに保存
  3. 03指定した型の逆コンパイル
  4. 04IL コードの確認
  5. 05一般的なアセンブリパスの検索

活用シーン

  1. 01コンパイル済み .NET ライブラリの動作理解
  2. 02アセンブリ内の特定の型の調査
  3. 03IL 出力の確認
  4. 04NuGet やビルドフォルダーでのアセンブリ検索

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/aaronontheweb/dotnet-skills --skill ilspy-decompile

インストール後、Claude Code で/ilspy-decompileを入力して読み込まれたか確認します。

詳細

ILSpy を使用した .NET アセンブリの逆コンパイル

コンパイル済みアセンブリを逆コンパイルして、.NET コードの内部動作を理解するには、このスキルを使用してください。

前提条件

  • .NET SDK がインストールされていること
  • ILSpy コマンドラインツールが、次のいずれかの方法で使用できること:
    • dnx ilspycmd(SDK またはランタイムで使用できる場合)
    • dotnet tool install --global ilspycmd

どちらの形式も以下に示します。お使いの環境で動作する方を使用してください。

注:ILSpyCmd のオプションは、バージョンによって若干異なる場合があります。
ilspycmd -h で、サポートされているフラグを必ず確認してください。

クイックスタート

# Decompile an assembly to stdout
ilspycmd MyLibrary.dll
# or
dnx ilspycmd MyLibrary.dll

# Decompile to an output folder
ilspycmd -o output-folder MyLibrary.dll

よく使用される .NET アセンブリの場所

NuGet パッケージ
~/.nuget/packages/<package-name>/<version>/lib/<tfm>/
.NET ランタイムライブラリ
dotnet --list-runtimes
.NET SDK の参照アセンブリ
dotnet --list-sdks

参照アセンブリには実装が含まれていません。

プロジェクトのビルド出力
./bin/Debug/net8.0/<AssemblyName>.dll
./bin/Release/net8.0/publish/<AssemblyName>.dll

基本的なワークフロー

  1. 理解したい内容を特定します
  2. アセンブリの場所を特定します
  3. 型を一覧表示します
  4. 対象を逆コンパイルします

コマンド

基本的な逆コンパイル
ilspycmd MyLibrary.dll
ilspycmd -o ./decompiled MyLibrary.dll
ilspycmd -p -o ./project MyLibrary.dll
対象を指定した逆コンパイル
ilspycmd -t Namespace.ClassName MyLibrary.dll
ilspycmd -lv CSharp12_0 MyLibrary.dll
IL コードを表示する
ilspycmd -il MyLibrary.dll

最新の .NET ビルドに関する注意事項

  • ReadyToRun イメージでは、可読性が低下する場合があります
  • トリミングされたビルドや AOT ビルドでは、コードが省略される場合があります
  • トリミングされていないビルドを推奨します

法的な注意事項

アセンブリの逆コンパイルには、ライセンス上の制限が適用される場合があります。

コメント