
कोडिंग एजेंट्स के लिए मल्टी-सेशन 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 के अंदर अपडेटर आउटपुट |