
코딩 에이전트용 멀티 세션 IDALib MCP 라우터. IDA 호환 리버스 엔지니어링 도구로 여러 바이너리를 병렬로 분석합니다.
하나의 MCP 엔드포인트. 많은 격리된 IDALib 세션.
IDA Pro MCP 툴셋과 함께 헤드리스 바이너리 분석을 위한 가볍고 에이전트 우선 제어 계층입니다.
[!IMPORTANT] Pocket Disasm은 독립적인 오픈 소스 프로젝트입니다. Hex-Rays와 제휴, 보증, 후원 또는 공식 제품이 아닙니다. IDA Pro 및 IDALib는 Hex-Rays의 제품이며 별도의 유효한 설치 및 라이선스가 필요합니다. Pocket Disasm은 IDA, IDALib 또는 Hex-Rays 소프트웨어를 배포하지 않습니다.
Pocket Disasm은 하나의 공개 MCP 라우터를 실행하고 각 바이너리에 고유한 IDALib 작업자를 할당합니다. 코딩 에이전트는 매 파일마다 별도의 대화형 IDA 창을 열지 않고도 분석 세션을 생성, 선택, 검사, 저장 및 종료할 수 있습니다.
이 프로젝트는 핵심 MCP 분석 구현 및 도구 카탈로그로 mrexodia/ida-pro-mcp의 고정된 리비전을 사용합니다. Pocket Disasm은 해당 업스트림 프로젝트를 기반으로 통합 다중 세션 라우터, 프로세스 격리, 에이전트 통합, 진단 및 터미널 제어 센터를 구축합니다.
PowerShell에서 한 명령을 실행합니다:
irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1 | iex
그런 다음 새 터미널을 열고 다음을 실행합니다:
pocket
설치 프로그램은 %LOCALAPPDATA%\PocketDisasm 아래에 격리된 Python 환경을 생성하고, 고정된 종속성을 설치하며, 사용자 PATH에 pocket 명령을 추가하고 터미널 제어 센터를 엽니다.
ida-pro-mcp 도구 카탈로그로 라우팅됩니다.pocket을 실행합니다.idalib.dll이 포함된 디렉토리를 선택합니다.기본 엔드포인트는 다음과 같습니다:
http://127.0.0.1:13339/mcp
포트는 TUI에서 변경할 수 있습니다. Pocket Disasm은 이전에 등록된 모든 MCP 구성 파일을 업데이트하고 필요할 때 라우터를 다시 시작합니다.
에이전트는 각 바이너리마다 전용 MCP 서버가 필요하지 않습니다. 공유 엔드포인트를 통해 세션을 생성하고 라우팅합니다:
idb_open(input_path="C:\\samples\\first.exe", session_id="first", wait=true)
idb_open(input_path="C:\\samples\\second.dll", session_id="second", wait=true)
decompile(addr="main", database="first")
survey_binary(database="second")
선택은 현재 MCP 클라이언트로 범위를 지정할 수도 있습니다:
idb_select(database="first")
decompile(addr="main")
이를 통해 하나의 모델이 여러 바이너리를 관리하거나 여러 에이전트가 선택한 데이터베이스를 공유하지 않고 동일한 라우터를 통해 작업할 수 있습니다.
flowchart LR
A1["Coding agent A"] --> MCP["Pocket Disasm MCP<br/>127.0.0.1:13339/mcp"]
A2["Coding agent B"] --> MCP
A3["Coding agent N"] --> MCP
MCP --> S["Multi-session supervisor"]
S --> W1["IDALib worker<br/>binary A"]
S --> W2["IDALib worker<br/>binary B"]
S --> WN["IDALib worker<br/>binary N"]
각 활성 세션에는 자체 프로세스, 내부 포트, 격리된 분석 작업 공간, IDA 데이터베이스 및 작업자 로그가 있습니다. 구성 가능한 작업자 제한은 무제한 프로세스 생성을 방지합니다. 기본값은 8이며 TUI는 1에서 128 사이의 값을 허용합니다.
Pocket Disasm은 일반 IDA MCP 카탈로그에 다음 도구를 추가합니다:
survey_binary, lookup_funcs, func_query, find_bytes, decompile과 같은 일반 분석 도구는 선택적 database 인수를 허용합니다. 생략하면 Pocket Disasm은 해당 MCP 클라이언트가 선택한 세션을 사용합니다.
TUI는 기존 구성 파일에 pocket-disasm MCP 항목만 병합합니다. 전체 파일을 대체하지는 않습니다.
동일한 작업을 CLI에서 사용할 수 있습니다:
pocket integrate codex claude cursor --scope global
pocket integrate claude cursor vscode --scope project --project-dir .
TUI는 일반적인 설치 및 제어를 다룹니다. CLI는 자동화 및 진단을 위해 계속 사용할 수 있습니다:
모든 옵션은 pocket <command> --help를 실행하세요.
Pocket Disasm은 사용자 상태를 다음 위치에 저장합니다:
%LOCALAPPDATA%\PocketDisasm
중요한 파일은 다음과 같습니다:
TUI에서 Inspect logs를 사용하거나 다음을 실행하세요:
pocket logs
TUI는 시작할 때 한 번 새 버전이 있는지 확인합니다. 업데이트가 가능하면 Update Pocket Disasm이 작업 목록에 나타납니다. 업데이터는 구성을 유지하고, 격리된 환경을 업데이트하며, TUI를 다시 시작하고 이전에 실행 중이었던 라우터를 다시 온라인 상태로 만듭니다.
winget을 통해 Python 3.12를 설치할 수 있습니다.Pocket Disasm은 IDA, IDALib 또는 IDA 라이선스를 포함하지 않습니다. 독립적인 프로젝트이며 Hex-Rays와 제휴 또는 보증 관계가 없습니다.
$script = irm https://raw.githubusercontent.com/whoisqwerz/pocket_disasm/main/install.ps1
& ([scriptblock]::Create($script)) -Uninstall
에이전트 MCP 항목은 의도적으로 자동으로 제거되지 않으므로 제거 중에 관련 없는 구성이 다시 작성되지 않습니다. 더 이상 필요하지 않은 경우 해당 에이전트 구성 파일에서 수동으로 제거할 수 있습니다.
Pocket Disasm은 MIT 라이선스에 따라 배포됩니다.
| 도구 | 목적 |
|---|
idb_open | 로컬 바이너리에 대한 격리된 세션 생성 |
idb_list | 세션, 상태, 프로세스 및 현재 선택 목록 표시 |
idb_select | 현재 MCP 클라이언트의 기본 세션 선택 |
idb_health | 작업자 시작 및 프로세스 상태 읽기 |
idb_wait | IDA 자동 분석 및 MCP 시작 대기 |
idb_save | 현재 IDA 데이터베이스 저장 |
idb_logs | 하나의 작업자에서 최근 출력 읽기 |
idb_close | 작업자 중지 및 리소스 해제 |
| 에이전트 | 전역 구성 | 프로젝트 구성 |
|---|
| Codex | ~/.codex/config.toml | 전역 엔드포인트 사용 |
| Claude Code | ~/.claude.json | .mcp.json |
| Cursor | ~/.cursor/mcp.json | .cursor/mcp.json |
| VS Code | 사용자 프로필 mcp.json | .vscode/mcp.json |
| Windsurf | ~/.codeium/windsurf/mcp_config.json | 전역 엔드포인트 사용 |
| 명령 | 설명 |
|---|
pocket | 터미널 제어 센터 열기 |
pocket doctor | Python, IDA, IDALib 및 MCP 종속성 확인 |
pocket start | 백그라운드에서 통합 라우터 시작 |
pocket stop | 라우터 및 해당 작업자 중지 |
pocket restart | 라우터 다시 시작 |
pocket status | 엔드포인트 및 데몬 상태 표시 |
pocket logs | 최근 진단 출력 출력 |
pocket port <port> | 등록된 에이전트 구성의 엔드포인트 변경 |
pocket config --max-workers <n> | 동시 작업자 제한 설정 |
pocket integrate <agents> | 하나 이상의 코딩 에이전트 구성 |
| 파일 | 내용 |
|---|
config.json | IDA 경로, 엔드포인트 포트 및 작업자 제한 |
integrations.json | Pocket Disasm이 관리하는 MCP 구성 파일 |
events.log | 구조화된 수명 주기 이벤트 및 예외 역추적 |
pocket-disasm.out.log | 라우터 표준 출력 |
pocket-disasm.err.log | 라우터 오류 출력 |
sessions/<session>/worker.log | IDALib 작업자의 지속적인 출력 |
installer.log | 설치 및 업그레이드 기록 |
update.log | TUI 내 업데이터 출력 |