XD

xteardx/diaphora-mcp

Developer tools

Эта страница переведена автоматически. Технические детали смотрите в оригинале. Открыть оригинал

20 stars 3 forks Качество 80 Тренд 24MIT

MCP-сервер для автоматического бинарного диффинга.

Обзор

Сравните две анализируемые IDA двоичные файлы с вашим помощником по ИИ. Diaphora MCP экспортирует сохраненные базы данных IDA, запускает Diaphora и позволяет ИИ проверять соответствующие функции и их графики вызовов. Интерфейс по умолчанию ориентирован на сравнение. Diaphora поставляет спички; ИИ читает фактический код и объясняет изменения. Python 3.10+, IDA Pro с idat.exe/idat64 и установленным плагином Diaphora. Оба двоичных файла анализируются и сохраняются как базы данных .i64/.idb. - локальный клиент MCP, такой как Codex, Claude Code или Cursor. Совместимый декомпилятор Hex-Rays, только если вам нужен псевдокод. IDA и Diaphora устанавливаются отдельно. В настоящее время валидация Diff-schema нацелена на Diaphora; для других схем могут потребоваться обновления совместимости. Интерпретатор Python, используемый для diff, должен иметь автономные зависимости Diaphora. Добавьте эту запись в конфигурацию MCP вашего клиента. Замените пути хранилища, IDA и Diaphora на пути установки.

Обзор (машинный перевод)

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

Diaphora MCP

Сравните две анализируемые IDA двоичные файлы с вашим помощником по ИИ. Diaphora MCP экспортирует сохраненные базы данных IDA, запускает Diaphora и позволяет ИИ проверять соответствующие функции и их графики вызовов.

По умолчанию интерфейс имеет 10 инструментов, ориентированных на сравнение. Diaphora поставляет спички; ИИ читает фактический код и объясняет изменения.

Быстрый запуск · Примеры · Инструменты · Устранение неполадок

Требования

Python 3.10+, IDA Pro с idat.exe/idat64 и установленным плагином Diaphora. Обе двоичные файлы анализируются и сохраняются как .i64/.idb базы данных. Местный клиент MCP, такой как Codex, Claude Code или Cursor. Совместимый декомпилятор Hex-Rays, только если вам нужен псевдокод.

IDA и Diaphora устанавливаются отдельно. В настоящее время валидация Diff-schema нацелена на Diaphora 3.4.1; для других схем могут потребоваться обновления совместимости. Интерпретатор Python, используемый для diff, должен иметь автономные зависимости Diaphora.

Быстрый старт

###1 Установите и создайте каталог вывода

###2 Подключите MCP-сервер

Добавьте эту запись в конфигурацию MCP вашего клиента. Замените пути хранилища, IDA и Diaphora на пути установки.

Эта страница переведена автоматически. Технические детали смотрите в оригинале.

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

Открыть полный README на GitHub

Установка

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" } } } }