アップデート一覧に戻る
New releaseSep 3, 2026

IDAssist v2.3.0

IDA Pro用のAI搭載リバースエンジニアリングプラグイン

共有

IDAssist

AIを活用したIDA Pro向けリバースエンジニアリングプラグイン

作者: Jason Tang

説明

IDAssistは、LLMを活用した解析をIDAのインターフェースに直接統合するIDA Proプラグインです。設定可能なLLMプロバイダー、セマンティックナレッジグラフ、RAGドキュメント検索を通じてAI支援によるバイナリリバースエンジニアリングを提供し、多種多様なLLMプロバイダーをサポートします。

PythonとPySide6で構築されたIDAssistは、IDA Pro 9.0+内でドッキング可能なパネルとして動作し、LLMプロバイダー(OpenAI、Anthropic、Ollama、LiteLLMなど)と通信して、関数の解析、リネーム提案、コードに関する質問への回答、バイナリ全体の検索可能なナレッジグラフの構築を行います。

スクリーンショット

コア機能

関数説明 — 逆コンパイルされた関数の詳細な自然言語説明を生成し、リスクレベル、アクティビティプロファイル、セキュリティフラグ、API検出を含む自動セキュリティ解析を行います。

対話型クエリチャット — 永続的なチャット履歴を使用してバイナリに関する質問をします。コンテキストマクロ(#func#addr#line#range)を使用して、関数コード、アドレス、逆アセンブル範囲をクエリに挿入します。

自動アクション — AIによる関数、変数、型のリネーム提案。信頼スコア付きのテーブルで提案された変更を確認し、選択したアクションをIDBに適用します。

セマンティックナレッジグラフ — バイナリの関数、呼び出し関係、データフロー、セキュリティ特性のナレッジグラフを構築して探索します。ビジュアルグラフレンダリング、セマンティック検索、コミュニティ検出を含みます。

RAGドキュメント検索 — 参照ドキュメント(.txt.md.rst.pdf)をアップロードし、LLMクエリのコンテキストとして使用します。Whooshインデックスによるハイブリッドテキスト+ベクトル検索をサポートします。

SymGraph統合 — 関数名、変数名、型、グラフデータをSymGraphコラボレーションプラットフォームにプッシュ/プルします。プル時の競合解決機能を備えたマルチステップウィザードが含まれます。

設定管理 — 複数のLLMおよびMCPプロバイダーの設定、SymGraph API認証情報の管理、システムプロンプトのカスタマイズ、データベースパスの設定を行います。

高度な機能

ReActエージェント

クエリタブは自律型ReAct(Reasoning + Acting)エージェントモードをサポートします。有効にすると、LLMが調査戦略を計画し、情報収集のためのツールを実行し、結果を考察し、包括的な回答を合成します。これらすべてが複数の推論ラウンドにわたって自動的に行われます。

拡張思考

応答前にLLMが「考える」量を制御するための推論努力レベルを設定します:

レベル思考予算最適用途
なし無効高速で単純なクエリ
~2Kトークン簡単な解析
~10Kトークン中程度の複雑さ
~25Kトークン深い解析、複雑なコード

MCP統合

IDAssistは外部MCPサーバーに接続してツール拡張型LLM対話を行うことができ、モデルはプログラム的に関数を検査、逆アセンブルを読み取り、相互参照を照会、推論中にIDBを変更できます。URLベースのMCPサーバー(SSEまたはStreamable HTTP)と、ローカルCLIコマンドから起動するstdioベースのMCPサーバーの両方をサポートします。また、IDAssistは外部MCPサーバーを必要とせずに関数呼び出しを行うための組み込み内部ツールも提供します。

関数呼び出し

ツール呼び出しをサポートするLLMプロバイダーは、会話中にIDA解析関数を呼び出し、手動介入なしで反復調査を可能にします。

RLHFフィードバック

説明やクエリ応答に対して賛成/反対のフィードバックを提供します。フィードバックはローカルに保存され、プロンプトエンジニアリングやモデル選択の改善に使用できます。

アーキテクチャ

IDAssistはMVC(Model-View-Controller)パターンに従います:

  • ビュー (src/views/) — ユーザー操作時にシグナルを発するPySide6タブウィジェット
  • コントローラー (src/controllers/) — ビューシグナルをサービスコールに接続、状態管理
  • サービス (src/services/) — ビジネスロジック、LLMプロバイダー、データベースアクセス、グラフ解析
  • 内部ツール (src/services/internal_tools.py) — LLM関数呼び出しのためのIDA固有ツール定義
  • グラフツール (src/services/graphrag/graphrag_tools.py) — LLM対話のためのセマンティックグラフ読み取り/書き込みツール

主要な設計原則:

  • すべてのIDA API呼び出しは execute_on_main_thread() を介してメインスレッドで実行されます
  • LLM応答はUIにインクリメンタルにストリーミングされます
  • 永続化のためのローカルSQLiteデータベース(外部データベース不要)
  • スレッドセーフな初期化を備えたシングルトンサービスレジストリ

クイックスタート

  1. プラグインのインストール(推奨 — IDAプラグインマネージャー):

    hcli plugin install idassist
    

    これにより、プラグインとそのPython依存関係がIDAの環境に自動的にインストールされます。

  2. または手動インストール(リリースtarballから):

    最新のリリースzipをGitHub Releasesからダウンロードし、IDAプラグインディレクトリに展開します:

    Linux / macOS:

    unzip IDAssist-*.zip -d ~/.idapro/plugins/
    

    Windows: zipを %APPDATA%\Hex-Rays\IDA Pro\plugins\ に展開します。

    次に、IDAにバンドルされたPython(システムのPythonではなく)を使用して依存関係をインストールします:

    Linux / macOS:

    <IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssist/requirements.txt
    

    Windows:

    "<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssist\requirements.txt"
    

    <IDA_INSTALL_DIR> をIDA Proのインストールパス(例:/opt/idapro-9.0 または C:\Program Files\IDA Pro 9.0)に置き換えてください。

    ヒント: IDAUSR 環境変数を、plugins/ サブディレクトリを含むカスタムディレクトリに設定することもできます。

  3. IDAssistを開く: IDA Proを起動し、バイナリを開き、Ctrl+Shift+A(または編集 > プラグイン > IDAssist)を押します。

  4. プロバイダーを設定: 設定タブに移動し、LLMプロバイダーの下にある追加をクリックし、希望のプロバイダーを設定します。

  5. 関数を解析: 任意の関数に移動し、説明タブをクリックし、関数を説明を押します。

詳細なセットアップ手順については、はじめにを参照してください。

LLMプロバイダーの設定

IDAssistは以下のプロバイダータイプをサポートします:

タイプ認証方法備考
anthropic_platformAPIキーAnthropic API直接
anthropic_oauthOAuth(ブラウザ)ブラウザベースの認証
anthropic_claude_cliローカルCLIclaude CLIバイナリを使用
bedrockAWS認証情報AWS Bedrock Converse API直接
openai_platformAPIキーOpenAI API直接
openai_oauthOAuth(ブラウザ)ブラウザベースの認証
ollamaなし(ローカル)自己ホスト型モデル
litellmプロキシURLマルチプロバイダープロキシ

推奨モデル

プロバイダーモデル強み
Anthropicclaude-sonnet-4-6強力なコード解析、拡張思考
OpenAIgpt-5.3-codex高速、優れた一般的な解析
Ollamaqwen2.5-coder:32bローカル、APIキー不要

セマンティックグラフの使用

セマンティックグラフタブはバイナリのナレッジグラフを提供します:

  1. バイナリの再インデックス — 関数構造、コールグラフ、相互参照を抽出
  2. セマンティック解析 — 各関数のLLM要約を生成
  3. セキュリティ解析 — 脆弱性パターンとセキュリティ関連APIを検出
  4. ネットワークフロー — コールグラフ全体のネットワーク操作を追跡
  5. コミュニティ検出 — 関連する関数をモジュールにグループ化

グラフはリストビュー(呼び出し元、呼び出し先、エッジ、フラグ)、ビジュアルグラフ(Nホップ展開可能なインタラクティブノード図)、または検索(セマンティック検索、類似関数、呼び出しコンテキストを含む7つのクエリタイプ)で探索します。

コンテキストメニューアクション

逆アセンブルビューまたは疑似コードビューで右クリックしてアクセス:

アクションホットキー効果
関数の説明Ctrl+Shift+E説明タブを開き説明を生成
選択範囲について質問Ctrl+Shift+Q#funcコンテキストでクエリタブを開く
リネーム提案アクションタブを開き提案を生成

要件

  • IDA Pro 9.0+(Python 3およびPySide6対応)
  • Hex-Raysデコンパイラ(疑似コード機能に推奨)
  • requirements.txtに記載されたPythonパッケージ

ドキュメント

ホームページ

https://symgraph.ai

ライセンス

詳細についてはLICENSEファイルを参照してください。

カテゴリ