
हेडलेस IDA Pro MCP सर्वर, idalib द्वारा संचालित AI-सहायता प्राप्त बाइनरी विश्लेषण के लिए।
हेडलेस IDA CLI और macOS तथा Linux पर बाइनरी विश्लेषण के लिए स्किल-प्रथम टूलकिट। ida-cli स्वतः एक रनटाइम बैकएंड का चयन करता है, आवश्यकता पड़ने पर स्वतः एक स्थानीय सर्वर प्रारंभ करता है, और समान सतह को एक फ्लैट CLI, एक stdio MCP ट्रांसपोर्ट, और एक Streamable HTTP MCP ट्रांसपोर्ट के रूप में उजागर करता है।
ida-cli बाइनरी (एक ही निष्पादन योग्य में क्लाइंट + सेवा)ida-cli स्किल (skill/SKILL.md)अंतर्निहित वर्कर / राउटर सेवा परत CLI द्वारा स्वचालित रूप से प्रारंभ और बंद की जाती है। आपको केवल serve / serve-http को स्पष्ट रूप से चलाने की आवश्यकता होती है जब आप वास्तव में एक लंबे समय तक चलने वाली, बाहरी रूप से संबोधित करने योग्य सेवा चाहते हैं।
बैकएंड चयन रनटाइम पर probe-runtime द्वारा किया जाता है। निर्माण के लिए अभी भी एक IDA SDK की आवश्यकता होती है क्योंकि वेंडर किया गया नेटिव परत उससे जुड़ा होता है; रनटाइम पर CLI स्वयं IDA को IDADIR या एक सामान्यीकृत सामान्य स्थापना पथ से खोलता है।
समर्थित 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 को स्पष्ट रूप से export करें।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 से लिंक करता है |