local-only server
The server can only run on the client’s local machine because it depends on local resources.
Integrations
Used to run the MCP server that bridges AI assistants with IDA Pro, enabling remote binary analysis capabilities through a structured API.
Enables execution of Python scripts within IDA Pro for reverse engineering tasks, allowing AI assistants to interact with binary analysis functions through a standardized interface.
Provides the client interface and MCP server implementation for enabling AI assistants to interact with IDA Pro's binary analysis capabilities.
IDA Pro MCP サーバー
AI アシスタントが IDA Pro と対話してリバース エンジニアリングやバイナリ分析のタスクを実行できるようにするモデル コンテキスト プロトコル (MCP) サーバー。
概要
このプロジェクトは、AIアシスタントと、ソフトウェアのリバースエンジニアリングに使用される人気の逆アセンブラおよびデバッガであるIDA Proとの橋渡しとなるものです。3つの主要コンポーネントで構成されています。
- IDA Pro リモート コントロール プラグイン(
ida_remote_server.py
): IDA Pro 機能をリモートで制御するための HTTP サーバーを作成する IDA Pro プラグイン。 - IDA リモート クライアント(
idaremoteclient.ts
): IDA Pro リモート コントロール サーバーと対話するための TypeScript クライアント。 - MCP サーバー(
index.ts
): IDA Pro 機能を AI アシスタントに公開するモデル コンテキスト プロトコル サーバー。
特徴
- IDA ProでAIアシスタントからPythonスクリプトを実行する
- バイナリに関する情報を取得します。
- 文字列
- 輸入品
- 輸出
- 機能
- 高度なバイナリ分析機能:
- 命令内の即値を検索する
- バイナリ内のテキスト文字列を検索する
- 特定のバイトシーケンスを検索する
- アドレス範囲の逆アセンブリを取得する
- 標準化されたインターフェースを通じてIDA Proの操作を自動化
- コンポーネント間の安全な通信
前提条件
- IDA Pro 8.3以降
- Node.js 18以降
- タイプスクリプト
使用例 ida_remote_server.py
MCPサーバーの使用例
インストール
1. IDA Proリモートコントロールプラグインをインストールする
ida_remote_server.py
を IDA Pro プラグイン ディレクトリにコピーします。- Windows:
%PROGRAMFILES%\IDA Pro\plugins
- macOS:
/Applications/IDA Pro.app/Contents/MacOS/plugins
- Linux:
/opt/idapro/plugins
- Windows:
- IDA Pro を起動し、バイナリ ファイルを開きます。
- プラグインは
127.0.0.1:9045
で HTTP サーバーを自動的に起動します。
2. MCPサーバーをインストールする
- このリポジトリをクローンします:Copy
- 依存関係をインストールします:Copy
- プロジェクトをビルドします。Copy
- AI アシスタントの MCP 設定ファイルで MCP サーバーを構成します。Copy
使用法
MCP サーバーをインストールして構成すると、AI アシスタントに次のツールが提供されます。
実行IDAコマンド
IDA Pro Python スクリプトを実行します。
パラメータ:
scriptPath
(必須): 実行するスクリプトファイルへの絶対パスoutputPath
(オプション): スクリプトの出力を保存する絶対パス
例:
AI アシスタントは、このスクリプトを次のように使用できます。
検索即時値
バイナリの命令内の即値を検索します。
パラメータ:
value
(必須): 検索する値 (数値または文字列)radix
(オプション):数値変換の基数(デフォルト:16)startAddress
(オプション): 検索の開始アドレスendAddress
(オプション): 検索の終了アドレス
例:
検索テキスト
バイナリ内のテキスト文字列を検索します。
パラメータ:
text
(必須): 検索するテキストcaseSensitive
(オプション): 検索で大文字と小文字を区別するかどうか (デフォルト: false)startAddress
(オプション): 検索の開始アドレスendAddress
(オプション): 検索の終了アドレス
例:
検索バイトシーケンス
バイナリ内の特定のバイトシーケンスを検索します。
パラメータ:
bytes
(必須): 検索するバイトシーケンス(例:3つのNOPの場合は「90 90 90」)startAddress
(オプション): 検索の開始アドレスendAddress
(オプション): 検索の終了アドレス
例:
get_disassembly
アドレス範囲の逆アセンブリを取得します。
パラメータ:
startAddress
(必須): 逆アセンブリの開始アドレスendAddress
(オプション): 逆アセンブリの終了アドレスcount
(オプション): 逆アセンブルする命令の数
例:
get_functions
バイナリから関数のリストを取得します。
パラメータ:
- 不要
例:
get_exports
バイナリからエクスポートのリストを取得します。
パラメータ:
- 不要
例:
get_strings
バイナリから文字列のリストを取得します。
パラメータ:
- 不要
例:
IDA Pro リモート コントロール API
IDA Pro リモート コントロール プラグインは、次の HTTP エンドポイントを公開します。
GET /api/info
: プラグイン情報を取得するGET /api/strings
: バイナリから文字列を取得するGET /api/exports
: バイナリからエクスポートを取得するGET /api/imports
: バイナリからインポートを取得するGET /api/functions
: 関数リストを取得するGET /api/search/immediate
: 命令内の即値を検索GET /api/search/text
: バイナリ内のテキストを検索するGET /api/search/bytes
: バイナリ内のバイトシーケンスを検索GET /api/disassembly
: アドレス範囲の逆アセンブリを取得するPOST /api/execute
: Python スクリプト (JSON/フォーム) を実行POST /api/executebypath
: ファイルパスからPythonスクリプトを実行するPOST /api/executebody
: 生のボディからPythonスクリプトを実行する
セキュリティに関する考慮事項
IDA Proリモートコントロールプラグインは、セキュリティ上の理由から、デフォルトで127.0.0.1
(ローカルホスト)のみをリッスンします。これにより、IDA Proインスタンスへのリモートアクセスが防止されます。
リモート アクセスを許可する必要がある場合は、 ida_remote_server.py
のDEFAULT_HOST
変数を変更できますが、セキュリティへの影響に注意してください。
発達
ソースから構築
テストの実行
ライセンス
このプロジェクトはMITライセンスの下で提供されています。詳細はLICENSEファイルをご覧ください。
著者
フロリアン・ドレクスラー (@fdrechsler) fd@fdrechsler.com
You must be authenticated.
Tools
AI アシスタントが IDA Pro と対話してリバース エンジニアリングやバイナリ分析のタスクを実行できるようにするモデル コンテキスト プロトコル サーバー。
- Overview
- Features
- Prerequisites
- Installation
- Usage
- IDA Pro Remote Control API
- Security Considerations
- Development
- License
- Author