
مكون إضافي للهندسة العكسية مدعوم بالذكاء الاصطناعي لـ IDA Pro
إضافة للهندسة العكسية مدعومة بالذكاء الاصطناعي لـ IDA Pro
المؤلف: Jason Tang
IDAssist هي إضافة لـ IDA Pro تدمج التحليل المدعوم بـ LLM مباشرة في واجهة IDA، مما يوفر هندسة عكسية ثنائية مدعومة بالذكاء الاصطناعي من خلال مزودي LLM قابلين للتكوين، ورسوم بيانية معرفية دلالية، وبحث في مستندات RAG، وتدعم مجموعة واسعة ومتنوعة من مزودي LLM.
مبنية باستخدام Python و PySide6، تعمل IDAssist كلوحة قابلة للإرساء داخل IDA Pro 9.0+ وتتواصل مع مزودي LLM (OpenAI, Anthropic, Ollama, LiteLLM، وغيرهم) لتحليل الدوال، واقتراح إعادة التسمية، والإجابة عن أسئلة حول الكود، وبناء رسم بياني معرفي قابل للبحث للثنائي بأكمله.

شرح الدوال — إنشاء شروحات تفصيلية باللغة الطبيعية للدوال المفككة مع تحليل أمني تلقائي بما في ذلك مستوى المخاطر، وملف النشاط، وعلامات الأمان، واكتشاف API.
دردشة استعلام تفاعلية — اطرح أسئلة حول الثنائي مع سجل دردشة مستمر. استخدم وحدات الماكرو السياقية (#func, #addr, #line, #range) لحقن كود الدوال، أو العناوين، أو نطاقات التفكيك في الاستعلامات.
إجراءات تلقائية — اقتراحات إعادة تسمية مدعومة بالذكاء الاصطناعي للدوال والمتغيرات والأنواع. راجع التغييرات المقترحة في جدول مع درجات الثقة، ثم طبق الإجراءات المحددة على IDB.
رسم بياني معرفي دلالي — بناء واستكشاف رسم بياني معرفي لدوال الثنائي، وعلاقات الاستدعاء، وتدفقات البيانات، وخصائص الأمان. يتضمن عرضًا رسوميًا للرسم البياني، وبحثًا دلاليًا، واكتشاف المجتمعات.
بحث مستندات RAG — قم بتحميل مستندات مرجعية (.txt, .md, .rst, .pdf) واستخدمها كسياق أثناء استعلامات LLM. يدعم البحث الهجين للنص + المتجه عبر فهرسة Whoosh.
تكامل SymGraph — دفع وسحب أسماء الدوال، وأسماء المتغيرات، والأنواع، وبيانات الرسم البياني إلى منصة SymGraph التعاونية. يتضمن معالجًا متعدد الخطوات مع حل التعارضات للسحب.
إدارة الإعدادات — تكوين مزودي LLM و MCP متعددين، وإدارة بيانات اعتماد API الخاصة بـ SymGraph، وتخصيص موجه النظام، وتعيين مسارات قاعدة البيانات.
تدعم علامة التبويب Query وضع وكيل ReAct المستقل (التفكير + الفعل). عند تمكينه، يخطط LLM لاستراتيجية تحقيق، وينفذ أدوات لجمع المعلومات، ويتأمل النتائج، ويصنع إجابة شاملة — كل ذلك تلقائيًا عبر جولات تفكير متعددة.
قم بتكوين مستويات جهد التفكير للتحكم في مقدار ما "يفكر" فيه LLM قبل الرد:
| المستوى | ميزانية التفكير | الأفضل لـ |
|---|---|---|
| لا شيء | معطل | استعلامات سريعة وبسيطة |
| منخفض | ~2K رمز | تحليل مباشر |
| متوسط | ~10K رمز | تعقيد معتدل |
| عالي | ~25K رمز | تحليل عميق، كود معقد |
يمكن لـ IDAssist الاتصال بخوادم MCP خارجية لتفاعلات LLM المعززة بالأدوات حيث يمكن للنموذج فحص الدوال برمجيًا، وقراءة التفكيك، والاستعلام عن المراجع المتقاطعة، وتعديل IDB أثناء التفكير. يتم دعم كل من خوادم MCP المستندة إلى URL (SSE أو Streamable HTTP) وخوادم MCP المستندة إلى stdio التي تبدأ من أمر CLI محلي. توفر IDAssist أيضًا أدوات داخلية مدمجة لاستدعاء الدوال دون الحاجة إلى خادم MCP خارجي.
يمكن لمزودي LLM الذين يدعمون استدعاء الأدوات استدعاء وظائف تحليل IDA أثناء المحادثة، مما يتيح التحقيق التكراري دون تدخل يدوي.
قدم ملاحظات إعجاب/عدم إعجاب على الشروحات وردود الاستعلام. يتم تخزين الملاحظات محليًا ويمكن استخدامها لتحسين هندسة المطالبات واختيار النموذج.
تتبع IDAssist نمط MVC (نموذج-عرض-تحكم):
src/views/) — عناصر واجهة علامات التبويب PySide6 التي تصدر إشارات عند التفاعل مع المستخدمsrc/controllers/) — ربط إشارات العرض باستدعاءات الخدمة، وإدارة الحالةsrc/services/) — منطق الأعمال، مزودي LLM، الوصول إلى قاعدة البيانات، تحليل الرسم البيانيsrc/services/internal_tools.py) — تعريفات أدوات خاصة بـ IDA لاستدعاء دوال LLMsrc/services/graphrag/graphrag_tools.py) — أدوات قراءة/كتابة الرسم البياني الدلالي للتفاعل مع LLMمبادئ التصميم الرئيسية:
execute_on_main_thread()تثبيت الإضافة (موصى به — مدير إضافات IDA):
hcli plugin install idassist
يقوم هذا بتثبيت الإضافة وتبعياتها Python تلقائيًا في بيئة IDA.
أو التثبيت يدويًا (من حزمة الإصدار):
قم بتنزيل أحدث إصدار zip من GitHub Releases واستخرجه إلى دليل إضافات IDA الخاص بك:
لينكس / ماك أو إس:
unzip IDAssist-*.zip -d ~/.idapro/plugins/
ويندوز:
استخرج الملف المضغوط إلى %APPDATA%\Hex-Rays\IDA Pro\plugins\.
ثم قم بتثبيت التبعيات باستخدام Python المضمنة مع IDA (وليس Python النظام الخاص بك):
لينكس / ماك أو إس:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssist/requirements.txt
ويندوز:
"<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).تلميح: يمكنك أيضًا تعيين متغير البيئة
IDAUSRإلى دليل مخصص يحتوي على دليل فرعيplugins/.
فتح IDAssist: قم بتشغيل IDA Pro، وافتح ثنائي، واضغط Ctrl+Shift+A (أو Edit > Plugins > IDAssist).
تكوين مزود: اذهب إلى علامة التبويب Settings، وانقر على Add تحت LLM Providers، وقم بتكوين المزود المفضل لديك.
تحليل دالة: انتقل إلى أي دالة، وانقر على علامة التبويب Explain، واضغط على Explain Function.
للحصول على تعليمات إعداد مفصلة، راجع البدء.
تدعم IDAssist أنواع المزودين التالية:
| النوع | طريقة المصادقة | ملاحظات |
|---|---|---|
anthropic_platform | مفتاح API | Anthropic API مباشر |
anthropic_oauth | OAuth (المتصفح) | مصادقة مستندة إلى المتصفح |
anthropic_claude_cli | CLI محلي | يستخدم ثنائي CLI claude |
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 رسمًا بيانيًا معرفيًا للثنائي:
استكشف الرسم البياني عبر عرض القائمة (المتصلون، المستدعون، الحواف، العلامات)، الرسم البياني المرئي (مخطط عقدة تفاعلي مع توسيع N-hop)، أو البحث (7 أنواع استعلام بما في ذلك البحث الدلالي، والدوال المشابهة، وسياق الاستدعاء).
انقر بزر الماوس الأيمن في أي عرض تفكيك أو كود زائف للوصول إلى:
| الإجراء | المفتاح الساخن | التأثير |
|---|---|---|
| شرح الدالة | Ctrl+Shift+E | يفتح علامة التبويب Explain وينشئ شرحًا |
| اسأل عن التحديد | Ctrl+Shift+Q | يفتح علامة التبويب Query مع سياق #func |
| اقتراحات إعادة التسمية | — | يفتح علامة التبويب Actions وينشئ اقتراحات |
requirements.txtراجع ملف LICENSE للحصول على التفاصيل.