
idalibを活用した、AI支援バイナリ解析用のヘッドレスIDA Pro MCPサーバー
macOS および Linux 向けのヘッドレス IDA CLI およびスキルファーストのバイナリ解析ツールキット。ida-cli はランタイムバックエンドを自動選択し、必要に応じてローカルサーバーを自動起動し、フラット CLI、stdio MCP トランスポート、Streamable HTTP MCP トランスポートとして同じサーフェスを公開します。
ida-cli バイナリ(1つの実行ファイルにクライアント+サービスを内包)ida-cli スキル(skill/SKILL.md)基盤となるワーカー/ルーターサービス層は、CLI によって自動的に起動・終了されます。実際に長時間稼働する外部から到達可能なサービスが必要な場合にのみ、serve / serve-http を明示的に実行する必要があります。
バックエンドの選択は、実行時に probe-runtime によって行われます。ビルドには依然として IDA SDK が必要です。ベンダリングされたネイティブレイヤーが SDK にリンクされるためです。実行時には、CLI が IDADIR または正規化された一般的なインストールパスから IDA 自体を起動します。
サポート対象の IDA 9.x ランタイムで、ida-cli は以下が可能です:
.i64 データベースを再利用read_* および convert_number ヘルパーの適用run_script による IDAPython スニペットの実行未対応事項: 一部の書き込み中心の操作や高度な型編集操作は、idat-compat ではまだ部分的です。生成されたツール一覧については docs/TOOLS.md を参照してください。
デフォルトのエントリーポイントは ida-cli スキルであり、手動での CLI インストールではありません。
# list the skill exposed by this repository
npx -y skills add https://github.com/cpkt9762/ida-cli --list
# install the ida-cli skill for Codex
npx -y skills add https://github.com/cpkt9762/ida-cli --skill ida-cli --agent codex --yes --global
インストール後、スキルには独自のブートストラップラッパーが同梱されます:
~/.agents/skills/ida-cli/scripts/ida-cli.sh --help
~/.agents/skills/ida-cli/scripts/ida-cli.sh probe-runtime
~/.agents/skills/ida-cli/scripts/ida-cli.sh --path /path/to/binary list-functions --limit 20
ida-cli が見つからない場合、ラッパーはコマンドを転送する前にリポジトリのインストーラーを通じてインストールします。
これは、スキルを経由せずにスタンドアロン CLI が必要な場合にのみ使用してください。
curl -fsSL https://raw.githubusercontent.com/cpkt9762/ida-cli/master/scripts/install.sh | bash -s -- --add-path
便利なバリエーション:
# install a specific release
curl -fsSL https://raw.githubusercontent.com/cpkt9762/ida-cli/master/scripts/install.sh | bash -s -- --tag v0.9.3 --add-path
# build directly from a branch or ref
curl -fsSL https://raw.githubusercontent.com/cpkt9762/ida-cli/master/scripts/install.sh | bash -s -- --ref master --build-from-source --add-path
注意事項:
~/.local/bin/ida-cli に配置します。--add-path は、その bin ディレクトリをシェルの rc ファイルに追加します。IDASDKDIR と IDALIB_SDK のどちらも設定されておらず、ローカルビルドが必要な場合、インストーラーはオープンソースの HexRaysSA/ida-sdk を自動的にクローンします。ida-cli をインストールまたは実行する前に IDADIR を明示的にエクスポートしてください。git clone https://github.com/cpkt9762/ida-cli.git
cd ida-cli
export IDADIR="/Applications/IDA Professional 9.4.app/Contents/MacOS" # or a Linux install
export IDASDKDIR="/path/to/ida-sdk" # root or ida-sdk/src
cargo build --bin ida-cli
./target/debug/ida-cli --help
ida-cli はクライアントファーストです。任意のクライアントサブコマンドは、ランダムポートにバインドされたローカルの Streamable-HTTP サーバーを自動起動し、検出用に /tmp/ida-cli.socket を書き込みます:
./target/debug/ida-cli --path /path/to/sample.bin list-functions --limit 20
./target/debug/ida-cli --path /path/to/sample.bin decompile --addr 0x140001000
./target/debug/ida-cli --path /path/to/sample.bin raw '{"method":"get_xrefs_to","params":{"address":"0x140001000"}}'
最初の引数がサービスサブコマンド(serve、serve-http、serve-worker、probe-runtime)であるコマンドは、代わりにサービスモードに入ります:
./target/debug/ida-cli serve # stdio MCP transport
./target/debug/ida-cli serve-http --bind 127.0.0.1:8765
./target/debug/ida-cli probe-runtime
バックエンドプローブ出力の例:
{"runtime":{"major":9,"minor":1,"build":250226},"backend":"idat-compat","supported":true,"reason":null}
{"runtime":{"major":9,"minor":4,"build":260610},"backend":"native-linked","supported":true,"reason":null}
完全な CLI サーフェスについては skill/references/cli-tool-reference.md を参照してください。
IDADIR による IDA インストール(ランタイムサポートは IDA 9.0 以降)IDASDKDIR または IDALIB_SDK による IDA SDKSDK パスは次のいずれかのレイアウトを指すことができます:
/path/to/ida-sdk/path/to/ida-sdk/srcidat-compatIDA 9.0〜9.2 互換バックエンド。idat にシェルアウトし、短い IDAPython スクリプトを実行して、構造化された JSON を CLI ランタイムに返します。
native-linkedIDA 9.3+ バックエンド。ベンダリングされた idalib 系統にリンクし、データベースをインプロセスで開きます。
~/.ida/idb/~/.ida/logs/server.log~/.ida/server.sock~/.ida/server.pid/tmp/ida-cli.socket/tmp/ida-cli-out/GitHub Actions は、ホスト型ランナー上でオープンソースの HexRaysSA/ida-sdk に対してツリーをコンパイルおよびテストするため、CI はプライベートなマシン構成に依存しません。
現在のワークフロー動作:
master へのプッシュとプルリクエストは検証を実行v0.9.3 のようなタグ付きプッシュは、Linux と macOS 向けのリリースアーカイブをビルドinstall.sh とプラットフォーム別アーカイブが添付リリースバイナリは SDK スタブに対してビルドされます。インストール時に、install.sh によって生成されたランチャーは、ida-cli を呼び出す前に IDADIR または正規化された一般的なインストールパスのセットを通じてローカルの IDA ランタイムを解決します。
MIT
| IDA バージョン | バックエンド | 備考 |
|---|
< 9.0 | 非サポート | — |
9.0 – 9.2 | idat-compat | idat + IDAPython にシェルアウト |
9.3+ | native-linked | ベンダリングされた idalib にリンク |