XD

xteardx/diaphora-mcp

Developer tools

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。 原文を見る

20 stars 3 forks 品質 80 トレンド 24MIT

MCP サーバが自動バイナリー ディフューシングを行う.

概要

AIアシスタントから2つのIDA分析バイナリを比較します。 Diaphora MCP は、保存された IDA データベースをエクスポートし、Diaphora を実行し、AI が対応する関数とコール グラフを検査できるようにします。 デフォルトインターフェイスは比較に焦点を当てています。 Diaphora はマッチします。AI は実際のコードを読み、変更を説明しています。 - Python 3.10+、IDA idat.exe/idat64 と Pro をインストールした Diaphora プラグイン。 - バイナリは、.i64/.idb データベースとして解析および保存されます。 - ローカルMCPクライアント、コーデックス、クロードコード、またはカーソルなどの。 - 擬似コードが必要な場合のみ、互換性のあるヘックスレイズデコンピラーです。 IDAとDiaphoraを別途インストールします。 Diff-schema 検証は現在 Diaphora を対象としています。他のスキーマは互換性の更新が必要な場合があります。 diff に使用する Python のインタープリターには、Diaphora のスタンドアローンの依存関係がインストールされている必要があります。 クライアントのMCP設定にこのエントリを追加します。 リポジトリ、IDA、Diaphoraパスをインストールパスに置き換えます.

概要(AI 翻訳)

Русская версия

ディアフォラ MCP

AIアシスタントから2つのIDA分析バイナリを比較します。 Diaphora MCP は、保存された IDA データベースをエクスポートし、Diaphora を実行し、AI が対応する関数とコール グラフを検査できるようにします。

デフォルトインターフェイスは、10ツールの比較に焦点を当てています。 Diaphora はマッチします。AI は実際のコードを読み、変更を説明しています。

クイックスタート・例・ツール・トラブルシューティング

要件

  • Python 3.10+、IDA Pro、idat.exe/[idat64]]、およびインストールされたDiaphoraプラグイン。
  • バイナリは[.i64/[[.idb]]]データベースとして解析および保存されます。
  • Codex、ClaudeコードまたはCursorなどのローカルMCPクライアント。
  • 擬似コードが必要な場合のみ、互換性のあるヘックスレイズデコンピラーです。

IDAとDiaphoraを別途インストールします。 Diff-schema の検証は、現在 Diaphora 3.4.1 を対象としています。他のスキーマは互換性の更新が必要な場合があります。 diff に使用する Python のインタープリターには、Diaphora のスタンドアローンの依存関係がインストールされている必要があります。

クイックスタート

##1. 出力ディレクトリのインストールと作成

##2. MCPサーバーを接続する

クライアントのMCP設定にこのエントリを追加します。 リポジトリ、IDA、Diaphoraパスをインストールパスに置き換えます.

このページは AI により自動翻訳されています。技術的な詳細は原文をご確認ください。

README

以下は原文 README の抜粋です。原文を見る。

Русская версия

Diaphora MCP

Compare two IDA-analyzed binaries from your AI assistant. Diaphora MCP exports the saved IDA databases, runs Diaphora, and lets the AI inspect corresponding functions and their call graphs.

The default interface has 10 tools focused on comparison. Diaphora supplies matches; the AI reads the actual code and explains the changes.

Quick start · Examples · Tools · Troubleshooting

old.i64 + new.i64 → headless export → SQLite exports + diff results
                                       ↓
                            summary → matched code → call graph

Requirements

  • Python 3.10+, IDA Pro with idat.exe/idat64, and an installed Diaphora plugin.
  • Both binaries analyzed and saved as .i64/.idb databases.
  • A local MCP client, such as Codex, Claude Code or Cursor.
  • A compatible Hex-Rays decompiler only if you want pseudocode.

IDA and Diaphora are installed separately. Diff-schema validation currently targets Diaphora 3.4.1; other schemas may need compatibility updates. The Python interpreter used for the diff must have Diaphora’s standalone dependencies installed.

Quick start

1. Install and create an output directory

git clone https://github.com/xTeardx/diaphora-mcp.git
cd diaphora-mcp
python -m venv .venv
.\.venv\Scripts\python.exe -m pip install -e .
New-Item -ItemType Directory -Force C:\diaphora-outputs | Out-Null

2. Connect the MCP server

Add this entry to your client’s MCP configuration. Replace the repository, IDA and Diaphora paths with your installation paths. Use the Python executable from the environment where you installed this project.

{
  "mcpServers": {
    "diaphora": {
      "command": "C:/src/diaphora-mcp/.venv/Scripts/python.exe",
      "args": ["C:/src/diaphora-mcp/diaphora_mcp_server.py"],
      "env": {
        "IDAT_PATH": "C:/Program Files/IDA Professional 9.3/idat.exe",
        "DIAPHORA_DIR": "C:/Program Files/IDA Professional 9.3/plugins/diaphora",
        "DIAPHORA_OUTPUT_ROOT": "C:/diaphora-outputs"
      }
    }
  }
}

The client launches the server over stdio; there is no separate web service to start. Restart the MCP server after changing its code or environment. A successful connection exposes the 10 tools listed below.

3. Ask your assistant to compare the files

Use Diaphora to compare C:/analysis/old.i64 (old) against
C:/analysis/new.i64 (new). Save output under C:/diaphora-outputs/run-001.
Export headlessly with assembly detail, keep the exports, show a summary,
then inspect partial matches and explain the code changes in the interesting
functions. Use the result mapping when comparing functions and call graphs.

Choose a fresh run directory each time. Existing generated targets are never overwritten.

Examples

GitHub で README 全文を見る

インストール

This server does not publish a one-line install command.

Open the repository installation guide MCP 初心者?mcpskill.org のガイドから始めましょう →

設定

{ "mcpServers": { "diaphora": { "command": "C:/src/diaphora-mcp/.venv/Scripts/python.exe", "args": ["C:/src/diaphora-mcp/diaphora_mcp_server.py"], "env": { "IDAT_PATH": "C:/Program Files/IDA Professional 9.3/idat.exe", "DIAPHORA_DIR": "C:/Program Files/IDA Professional 9.3/plugins/diaphora", "DIAPHORA_OUTPUT_ROOT": "C:/diaphora-outputs" } } } }