
IDAssist v2.3.0
IDA Pro के लिए AI-संचालित रिवर्स इंजीनियरिंग प्लगइन
IDAssist
IDA Pro के लिए AI-संचालित रिवर्स इंजीनियरिंग प्लगइन
लेखक: Jason Tang
विवरण
IDAssist एक IDA Pro प्लगइन है जो LLM-संचालित विश्लेषण को सीधे IDA के इंटरफ़ेस में एकीकृत करता है, जो कॉन्फ़िगरेबल 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 एजेंट
Query टैब एक स्वायत्त ReAct (Reasoning + Acting) एजेंट मोड का समर्थन करता है। सक्षम होने पर, LLM एक जांच रणनीति की योजना बनाता है, जानकारी इकट्ठा करने के लिए उपकरण निष्पादित करता है, निष्कर्षों पर विचार करता है, और एक व्यापक उत्तर संश्लेषित करता है — यह सब स्वचालित रूप से कई तर्क दौरों में होता है।
विस्तारित सोच
LLM के प्रतिक्रिया देने से पहले कितना "सोचना" है, इसे नियंत्रित करने के लिए तर्क प्रयास स्तरों को कॉन्फ़िगर करें:
| स्तर | सोच बजट | किसके लिए सर्वोत्तम |
|---|---|---|
| कोई नहीं | अक्षम | तेज़, सरल क्वेरी |
| कम | ~2K टोकन | सीधा विश्लेषण |
| मध्यम | ~10K टोकन | मध्यम जटिलता |
| उच्च | ~25K टोकन | गहन विश्लेषण, जटिल कोड |
MCP एकीकरण
IDAssist टूल-संवर्धित LLM इंटरैक्शन के लिए बाहरी MCP सर्वरों से जुड़ सकता है जहाँ मॉडल तर्क के दौरान प्रोग्रामेटिक रूप से फ़ंक्शनों का निरीक्षण कर सकता है, डिस्सेम्बली पढ़ सकता है, क्रॉस-रेफरेंस क्वेरी कर सकता है, और IDB को संशोधित कर सकता है। URL-आधारित MCP सर्वर (SSE या Streamable HTTP) और स्थानीय CLI कमांड से शुरू किए गए stdio-आधारित MCP सर्वर दोनों समर्थित हैं। IDAssist बाहरी MCP सर्वर की आवश्यकता के बिना फ़ंक्शन कॉलिंग के लिए अंतर्निहित आंतरिक उपकरण भी प्रदान करता है।
फ़ंक्शन कॉलिंग
टूल-कॉलिंग समर्थन वाले LLM प्रदाता बातचीत के बीच में IDA विश्लेषण फ़ंक्शनों को आमंत्रित कर सकते हैं, जिससे मैन्युअल हस्तक्षेप के बिना पुनरावृत्तीय जांच संभव हो पाती है।
RLHF फ़ीडबैक
स्पष्टीकरण और क्वेरी प्रतिक्रियाओं पर थम्स-अप/थम्स-डाउन फ़ीडबैक प्रदान करें। फ़ीडबैक स्थानीय रूप से संग्रहीत किया जाता है और प्रॉम्प्ट इंजीनियरिंग और मॉडल चयन को बेहतर बनाने के लिए उपयोग किया जा सकता है।
आर्किटेक्चर
IDAssist MVC (Model-View-Controller) पैटर्न का अनुसरण करता है:
- Views (
src/views/) — PySide6 टैब विजेट जो उपयोगकर्ता इंटरैक्शन पर सिग्नल उत्सर्जित करते हैं - Controllers (
src/controllers/) — व्यू सिग्नल को सेवा कॉल से जोड़ते हैं, स्थिति प्रबंधित करते हैं - Services (
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 डेटाबेस (कोई बाहरी डेटाबेस आवश्यक नहीं)
- थ्रेड-सुरक्षित आरंभीकरण के साथ सिंगलटन सेवा रजिस्ट्री
त्वरित आरंभ
-
प्लगइन स्थापित करें (अनुशंसित — IDA प्लगइन प्रबंधक):
hcli plugin install idassistयह स्वचालित रूप से प्लगइन और इसकी Python निर्भरताओं को IDA के वातावरण में स्थापित करता है।
-
या मैन्युअल रूप से स्थापित करें (रिलीज़ टारबॉल से):
नवीनतम रिलीज़ ज़िप GitHub Releases से डाउनलोड करें और इसे अपने IDA प्लगइन निर्देशिका में निकालें:
Linux / macOS:
unzip IDAssist-*.zip -d ~/.idapro/plugins/Windows: ज़िप को
%APPDATA%\Hex-Rays\IDA Pro\plugins\में निकालें।फिर IDA के बंडल Python का उपयोग करके निर्भरताएँ स्थापित करें (अपने सिस्टम Python का नहीं):
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssist/requirements.txtWindows:
"<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)।सुझाव: आप
plugins/उपनिर्देशिका वाले कस्टम निर्देशिका को इंगित करने के लिएIDAUSRपर्यावरण चर भी सेट कर सकते हैं। -
IDAssist खोलें: IDA Pro लॉन्च करें, एक बाइनरी खोलें, और
Ctrl+Shift+Aदबाएँ (या Edit > Plugins > IDAssist)। -
एक प्रदाता कॉन्फ़िगर करें: Settings टैब पर जाएँ, LLM Providers के अंतर्गत Add पर क्लिक करें, और अपना पसंदीदा प्रदाता कॉन्फ़िगर करें।
-
एक फ़ंक्शन का विश्लेषण करें: किसी भी फ़ंक्शन पर नेविगेट करें, Explain टैब पर क्लिक करें, और Explain Function दबाएँ।
विस्तृत सेटअप निर्देशों के लिए, Getting Started देखें।
LLM प्रदाता सेटअप
IDAssist निम्नलिखित प्रदाता प्रकारों का समर्थन करता है:
| प्रकार | प्रमाणीकरण विधि | टिप्पणियाँ |
|---|---|---|
anthropic_platform | API कुंजी | Anthropic API प्रत्यक्ष |
anthropic_oauth | OAuth (ब्राउज़र) | ब्राउज़र-आधारित प्रमाणीकरण |
anthropic_claude_cli | स्थानीय CLI | claude CLI बाइनरी का उपयोग करता है |
bedrock | AWS क्रेडेंशियल | प्रत्यक्ष AWS Bedrock Converse API |
openai_platform | API कुंजी | OpenAI API प्रत्यक्ष |
openai_oauth | OAuth (ब्राउज़र) | ब्राउज़र-आधारित प्रमाणीकरण |
ollama | कोई नहीं (स्थानीय) | स्व-होस्टेड मॉडल |
litellm | प्रॉक्सी URL | बहु-प्रदाता प्रॉक्सी |
अनुशंसित मॉडल
| प्रदाता | मॉडल | ताकत |
|---|---|---|
| Anthropic | claude-sonnet-4-6 | मजबूत कोड विश्लेषण, विस्तारित सोच |
| OpenAI | gpt-5.3-codex | तेज़, अच्छा सामान्य विश्लेषण |
| Ollama | qwen2.5-coder:32b | स्थानीय, कोई API कुंजी की आवश्यकता नहीं |
सिमैंटिक ग्राफ़ का उपयोग
Semantic Graph टैब बाइनरी का एक नॉलेज ग्राफ़ प्रदान करता है:
- ReIndex Binary — फ़ंक्शन संरचना, कॉल ग्राफ़ और क्रॉस-रेफरेंस निकालता है
- Semantic Analysis — प्रत्येक फ़ंक्शन के लिए LLM सारांश उत्पन्न करता है
- Security Analysis — भेद्यता पैटर्न और सुरक्षा-प्रासंगिक API का पता लगाता है
- Network Flow — कॉल ग्राफ़ में नेटवर्क संचालन को ट्रैक करता है
- Community Detection — संबंधित फ़ंक्शनों को मॉड्यूल में समूहित करता है
List View (कॉलर, कॉली, एज, फ्लैग), Visual Graph (N-हॉप विस्तार के साथ इंटरैक्टिव नोड आरेख), या Search (सिमैंटिक खोज, समान फ़ंक्शन और कॉल संदर्भ सहित 7 क्वेरी प्रकार) के माध्यम से ग्राफ़ का अन्वेषण करें।
संदर्भ मेनू क्रियाएं
किसी भी Disassembly या Pseudocode दृश्य में राइट-क्लिक करें:
| क्रिया | हॉटकी | प्रभाव |
|---|---|---|
| Explain Function | Ctrl+Shift+E | Explain टैब खोलता है और स्पष्टीकरण उत्पन्न करता है |
| Ask About Selection | Ctrl+Shift+Q | #func संदर्भ के साथ Query टैब खोलता है |
| Rename Suggestions | — | Actions टैब खोलता है और सुझाव उत्पन्न करता है |
आवश्यकताएँ
- IDA Pro 9.0+ Python 3 और PySide6 के साथ
- Hex-Rays Decompiler (स्यूडोकोड सुविधाओं के लिए अनुशंसित)
requirements.txtमें सूचीबद्ध Python पैकेज
दस्तावेज़ीकरण
- दस्तावेज़ीकरण सूचकांक
- Getting Started
- टैब संदर्भ: Explain | Query | Actions | Semantic Graph | RAG | Settings
- वर्कफ़्लो: Explain | Query | Semantic Graph
होमपेज
लाइसेंस
विवरण के लिए LICENSE फ़ाइल देखें।