mcpField
D
decompiler

decompiler

github.com/vulhunt-re開発1641 回インストール34 週間前に更新
リポジトリ

decompiler について

decompilerは、指定した関数をC風の疑似コードに変換するバイナリ解析スキルです。VulHunt MCPツールを使い、名前、アドレス、パターンで対象関数を指定できます。

主な機能

  1. 01関数をC風の疑似コードに変換
  2. 02名前またはアドレスで関数を指定
  3. 03正規表現やバイトパターンで検索
  4. 04一致する全関数を返す

活用シーン

  1. 01関数の実装とロジックの確認
  2. 02関数の制御フローの分析
  3. 03詳細な解析前に関数の用途を把握

MCP 対応

このスキルはVulHunt MCPツールでプロジェクトを開き、Luaクエリを実行して関数の疑似コードを取得します。

インストール

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

$npx skills add https://github.com/vulhunt-re/skills --skill decompiler

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

詳細

デコンパイラー

バイナリ内の関数をデコンパイルし、C風の擬似コードにします。

使用する場面

  • 関数のデコンパイル済みソースコードを表示する
  • 関数のロジックと制御フローを分析する
  • 詳細な分析に進む前に、関数の動作を把握する

手順

VulHunt MCP ツールを使用してプロジェクトを開き(open_project)、次の Lua クエリ(query_project)を実行します。必要に応じて調整してください。

local d = project:decompile(<target_function>)

return tostring(d)

<target_function> に指定できる値:

  • 文字列。例:"system"
  • AddressValue
    • VulHunt API はアドレスを AddressValue として返します
    • AddressValue を作成するには、たとえば AddressValue.new(0x1234) を使用します
  • 正規表現。例:{matching = "<regex>", kind = "symbol", all = true}
  • バイトパターン。例:{matching = "41544155", kind = "bytes", all = true}

all はブール値です。true に設定すると、一致するすべての関数を含むテーブルが返されます。false(デフォルト)の場合は、最初に一致した値のみが返されます。対象の関数が1つだけの場合(つまり、all が true に設定されていない場合)、for ループは必要ありません。

デコンパイルされた C 風の擬似コードを文字列として返します。

関連スキル

  • functions(/functions)— デコンパイルする前に、名前、アドレス、パターン、または動作条件(特定の API を呼び出す関数など)で対象の関数を見つけるために、このスキルを使用します。
  • code-pattern-matching(/code-pattern-matching)— デコンパイル結果から特定のコードパターンを検索します。

コメント