mcpField
B
binary-ninja-reverse

binary-ninja-reverse

github.com/zhaoxuya520セキュリティ43.7k618 回インストール5 週間前に更新
リポジトリ

binary-ninja-reverse について

binary-ninja-reverseは、Binary Ninjaで解析するリバースエンジニア向けスキルです。ILによるデータフロー解析や別ツールとの照合を支援し、安全な分析と証拠の記録、コミュニティ製MCPブリッジの慎重な利用を案内します。

主な機能

  1. 01Binary Ninja GUIとPython APIのワークフロー
  2. 02HLIL、MLIL SSA、LLILの分析
  3. 03インポート、エクスポート、文字列、参照の確認
  4. 04アドレスに基づく証拠の記録
  5. 05パッチやデータベース変更の安全な手順

活用シーン

  1. 01関数内のデータフローの追跡
  2. 02別の逆アセンブラーによる結果の照合
  3. 03再現可能なバイナリー分析の記録
  4. 04指定されたMCPブリッジを介したBinary Ninjaの利用

MCP 対応

Binary Ninja向けの任意のコミュニティ製MCPブリッジを紹介します。プラグインの境界を確認し、HTTPリスナーをローカルホストに限定したうえで、選択したMCPクライアントに登録するよう案内します。

インストール

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

$npx skills add https://github.com/zhaoxuya520/reverse-skill --skill binary-ninja-reverse

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

同梱ファイルagents/openai.yaml

詳細

Binary Ninja リバースエンジニアリング

ユーザーが明示的に Binary Ninja を選択した場合、その IL がデータフロー分析に実質的に役立つ場合、または IDA/Ghidra/radare2 の結果を独立してクロスチェックする必要がある場合に Binary Ninja を使用してください。

安全に開始する

  1. ターゲットに対して操作を行う前に、リポジトリのケーススコープが準備できていることを確認してください。
  2. skills/tool-index.md で binaryninja を確認してください。Binary Ninja は商用ソフトウェアであり、有効な Vector 35 ライセンスのもとで手動でインストールする必要があります。
  3. パッチの適用やデータベースの変更の保存を行う場合は、コピー上で作業してください。
  4. 調査結果を確定する前に、インポート/エクスポート、エントリポイント、アーキテクチャ、ファイルハッシュを記録してください。

統合方法を選択する

  • GUI または Python API: Binary Ninja がすでに開いている場合、またはユーザーが直接対話的な分析を希望する場合に推奨されます。
  • コミュニティ MCP ブリッジ: 明示的に要求された場合にのみ、サードパーティ製プラグインの境界を確認したうえで使用してください。Binary Ninja の HTTP リスナーは 127.0.0.1:9009 に保ち、デフォルトでネットワーク公開を有効にしないでください。
  • フォールバック: Binary Ninja が利用できない場合、またはそのライセンス/API でターゲットを開けない場合は、ghidra-reverse、ida-reverse、または radare2 を使用してください。

レビュー済みのコミュニティ統合は fosdickio/binary_ninja_mcp であり、GPL-3.0、プラグインメタデータバージョン 1.1.0、最小 Binary Ninja ビルド 4000 です。このリポジトリは Vector 35 の公式コンポーネントではありません。このスキルは 2026-09-03 時点のコミット 8c5134ee46e2bf44f9a4d846bd971c3e39b3e306 に対して確認されています。

Binary Ninja 側は、その Plugin Manager またはレビュー済みのソースからインストールしてください。MCP stdio ブリッジについては、無制限のパッケージを使用するのではなく、公開されているブリッジバージョンを固定してください:

npx -y [email protected] --host 127.0.0.1 --port 9009

そのコマンドは、ユーザーが選択した MCP クライアントにのみ登録してください。Binary Ninja が実行中で、バイナリが開かれており、localhost のプラグインエンドポイントが応答するまでは、ブリッジは準備完了ではありません。

分析ワークフロー

  1. 開いているバイナリを列挙し、目的のビューを選択してください。
  2. バイナリのステータス、エントリポイント、セグメント、インポート、エクスポート、代表的な文字列を取得してください。
  3. 関数を単独で解釈する前に、呼び出し箇所とクロスリファレンスを追跡してください。
  4. 読みやすいロジックには HLIL を、データフローには MLIL SSA を、リフティングによって命令レベルの動作が失われる場合には LLIL/逆アセンブリを使用してください。
  5. 名前、コメント、型を段階的に適用してください。証拠には元のアドレスを保持してください。
  6. バイトパッチ、プロトタイプの変更、ファイルへの保存書き込みは変更操作として扱ってください。これらは要求された場合にのみ実行し、元の成果物を保持してください。
  7. 影響の大きい結論は、第 2 の証拠ソースまたは別の逆アセンブラでクロスチェックしてください。

有用な MCP 機能ファミリーには、バイナリ/ビューの選択、list_imports、list_exports、list_strings、decompile_function、get_il、呼び出し元/呼び出し先、クロスリファレンス、型、コメント、名前変更、バイトパッチングが含まれます。上流のすべての関数が存在すると仮定せず、ライブのツール一覧を確認してください。

出力

具体的なアドレス、関数名、IL レベル、裏付けとなる文字列/インポート、信頼度、再現手順を報告してください。リポジトリの他の部分で使用されている Evidence → Finding → Path のチェーンを維持してください。

コメント