IDA Pro 9.x용 보안 로컬 REST, CLI, MCP 및 에이전트 브리지
IDA Pro 9.x를 위한 자율 AI 및 MCP 제어 계층
IDA Pro를 에이전트 기반 리버스 엔지니어링 강자로 탈바꿈시키세요. Model Context Protocol(MCP) 또는 고성능 REST API를 통해 Claude Desktop, Cursor, Antigravity 또는 사용자 정의 LLM 에이전트를 연결하세요.
┌─────────────────────────────────────────────────────────┐
│ IDA Pro 9.x │
│ ph4ntom_ida_bridge.py (102 REST Endpoints) │
│ 127.0.0.1:13370 (Bearer Token Protected) │
└────────────────────────────┬────────────────────────────┘
│ REST / JSON / SSE
┌────────────────────────────────┼───────────────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ MCP Server │ │ CLI / SDK │ │ AI Agents │
│ 54 Tools │ │ `ph4ntom-ida`│ │ Multi-LLM │
│ Claude │ │ Automation │ │ Gemini │
│ Cursor │ │ Headless │ │ Ollama │
│ Antigravity │ │ Testing │ │ Claude / GPT │
└───────────────┘ └───────────────┘ └───────────────┘
ph4ntom IDA Bridge는 IDA Pro 9.x를 위한 localhost 전용 제어 계층입니다. 자체 포함 IDA 플러그인, JSON REST API, Python 클라이언트, CLI, 54개의 네이티브 MCP 도구, 그리고 선택적 독립형 AI 백엔드를 결합합니다.
버전 6.2.0은 완전한 IDA 9.3 호환성, 원자적 데이터베이스 변경, 상수 시간 토큰 인증, SSE 커서 추적, 그리고 완전한 테스트 스위트 커버리지를 제공합니다.
Claude Desktop, Cursor 또는 모든 MCP 클라이언트를 60초 만에 실행 중인 IDA Pro 인스턴스에 연결하세요:
git clone https://github.com/ph4ntom-rev/ph4ntom-ida-bridge.git
cd ph4ntom-ida-bridge
python -m pip install -e ".[mcp]"
python cli.py install-plugin --ida-dir "C:\Program Files\IDA Professional 9.0"
(또는 ida_plugin/ph4ntom_ida_bridge.py와 api_schema.json을 IDA plugins/ 디렉터리에 직접 복사하세요).
%APPDATA%\Claude\claude_desktop_config.json(Windows) 또는 ~/Library/Application Support/Claude/claude_desktop_config.json(macOS)을 편집하세요:
{
"mcpServers": {
"ida-bridge": {
"command": "python",
"args": [
"C:/path/to/ph4ntom-ida-bridge/mcp_server.py"
]
}
}
}
.cursor/mcp.json 또는 Cursor 설정 → MCP에 추가하세요:
{
"mcpServers": {
"ida-bridge": {
"command": "python",
"args": ["-m", "mcp_server"],
"cwd": "C:/path/to/ph4ntom-ida-bridge"
}
}
}
IDA Pro를 시작하고 Ctrl+Shift+A를 눌러 서버를 토글한 뒤, AI 어시스턴트에 다음과 같이 프롬프트하세요:
"0x140001000에 있는 함수를 검사해 줘. 교차 참조를 추적하고, 마이크로코드를 분석하고, C 의사코드로 디컴파일한 다음, 난독화된 변수들을 의미 있는 이름으로 변경해 줘."
| 기능 | ph4ntom IDA Bridge | Gepetto / IDAGPT | Hex-Rays Copilot |
|---|---|---|---|
| 아키텍처 | 양방향 MCP + REST + CLI | 단일 프롬프트 래퍼 | 독점 UI 플러그인 |
| 도구 수 | 54개의 세분화된 MCP 도구 | 1개 (디컴파일 프롬프트) | 고정된 프롬프트 액션 |
| AST 및 제어 흐름 | 전체 ctree AST + 마이크로코드 IR (0-7) | 의사코드 텍스트만 | 의사코드 텍스트만 |
| 안전한 변경 | 롤백이 가능한 원자적 배치 변경 | 주석 삽입만 | UI 내 제안 |
| 라이브 디버거 | 레지스터, 스택, 메모리, 중단점 | 없음 | 없음 |
| 동적 실행 | 즉석 IDAPython 실행 엔진 | 없음 | 없음 |
| 지원 LLM | 모든 MCP 클라이언트 / Claude / GPT / Gemini / Ollama | OpenAI API 전용 | 독점 클라우드 |
| 보안 및 인증 | 로컬호스트 전용, 256비트 토큰, 소유자 DACL | 평문 API 키 노출 | 독점 |
| IDA Pro 9.3 지원 | 검증 및 완전 테스트 완료 | IDA 9+에서 작동 안 함 | 공식 |
MCP 서버는 7개 리버스 엔지니어링 영역에 걸쳐 목적에 맞게 설계된 54개의 도구를 제공합니다:
| 카테고리 | 도구 | 설명 |
|---|---|---|
| 🔍 바이너리 및 세그먼트 | ping, get_binary_info, list_segments, read_bytes, read_vtable | 바이너리 메타데이터, 비트 수, 권한, vtable 추출 |
| 🧩 디컴파일 및 AST | decompile, get_disassembly, get_ctree, get_microcode, get_local_variables, get_function_details | Hex-Rays C 의사코드, AST ctree JSON, 마이크로코드 IR (0=PREOPT ~ 7=LVARS), 프로토타입 정보 |
| 🕸️ 호출 그래프 및 Xref | get_xrefs_to, get_xrefs_from, get_callers, get_callees, get_call_graph, get_basic_blocks, get_strings_used | 교차 참조, 재귀적 호출자 트리, 기본 블록 제어 흐름 |
| 🔎 검색 및 탐색 | search_function, search_bytes, search_text, list_strings, list_names, list_imports, list_exports | 와일드카드 바이트 검색 (??), 임포트된 DLL 함수, 익스포트, 문자열 필터링 |
| 🏷️ 타입 및 구조체 | list_structs, get_struct, list_enums, list_types, get_type, create_type, create_struct | C 선언 파싱, 구조체 정의, 열거형 멤버 검사 |
| ✏️ 데이터베이스 변경 | rename_function, comment_function, set_inline_comment, rename_variable, set_variable_type, set_function_type, patch_bytes, batch_mutations, undo, redo, save_database, navigate_to | 검증된 이름 변경, 지역 변수 타입 지정, 바이너리 패칭, 원자적 롤백 |
| 🐞 라이브 디버거 | dbg_start, dbg_set_breakpoint, dbg_continue, dbg_step_into, dbg_step_over, dbg_get_registers, dbg_read_memory, dbg_get_stack | 프로세스 실행 제어, 하드웨어 중단점, 라이브 레지스터 및 메모리 덤프 |
| ⚡ 동적 IDAPython | execute_idapython | 구조화된 result 캡처를 통한 실시간 IDAPython 실행 |
| 📦 MCP 리소스 | ida://info, ida://schema | 실시간 바이너리 메타데이터 및 전체 OpenAPI 스키마 |
이 브리지는 IDA Pro 내부에서 실행되며 강력한 기능을 부여합니다. 버전 6은 심층 방어 기본값을 구현합니다:
127.0.0.1:13370에만 바인딩됩니다.~/.ph4ntom_ida_bridge_token에 저장됩니다.IDA_BRIDGE_ALLOW_EXEC=1이 필요합니다.POST /api/import-header는 사전 구성된 신뢰할 수 있는 루트 경로를 요구합니다.[!CAUTION] 포트 13370을 공용 인터페이스, 터널 또는 리버스 프록시를 통해 절대 노출하지 마십시오. 전체 하드닝 지침은 SECURITY.md를 참조하십시오.
| 경로 | 용도 |
|---|---|
ida_plugin/ph4ntom_ida_bridge.py | 표준 IDA 플러그인 및 REST 서버 (102개 엔드포인트) |
api_schema.json | 기계 판독 가능한 REST 참조 및 OpenAPI 스키마 |
core/client.py | 토큰 갱신을 지원하는 공유 인증 HTTP 클라이언트 |
cli.py | CLI, 플러그인 설치 프로그램, doctor 및 IDA 런처 |
mcp_server.py | 54개 도구와 두 개의 리소스를 노출하는 FastMCP 서버 |
agent.py | 5개의 상호 교환 가능한 LLM 백엔드를 갖춘 대화형 터미널 에이전트 |
swarm_worker.py | 구조화된 배치 분석 워커 |
agent_config.json | IDE 에이전트용 기계 판독 가능한 통합 사양 |
AGENT_SKILL.md | Antigravity 및 IDE 기반 에이전트용 스킬 정의 |
포함된 CLI는 모든 터미널에서 IDA 세션을 즉시 제어할 수 있게 해줍니다:
# Health & info
ph4ntom-ida ping
ph4ntom-ida info
# Functions & strings
python cli.py functions --limit 50
python cli.py strings --filter "socket|http|connect"
# Decompilation & Cross-references
python cli.py decompile 0x140001000
python cli.py xrefs 0x140001000
python cli.py callers 0x140001000