العودة إلى التحديثات
New releaseSep 3, 2026

IDAssist v2.3.0

مكون إضافي للهندسة العكسية مدعوم بالذكاء الاصطناعي لـ IDA Pro

مشاركة

IDAssist

إضافة للهندسة العكسية مدعومة بالذكاء الاصطناعي لـ IDA Pro

المؤلف: Jason Tang

الوصف

IDAssist هي إضافة لـ IDA Pro تدمج التحليل المدعوم بـ LLM مباشرة في واجهة IDA، مما يوفر هندسة عكسية ثنائية مدعومة بالذكاء الاصطناعي من خلال مزودي LLM قابلين للتكوين، ورسوم بيانية معرفية دلالية، وبحث في مستندات RAG، وتدعم مجموعة واسعة ومتنوعة من مزودي LLM.

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

Screenshot

الميزات الأساسية

شرح الدوال — إنشاء شروحات تفصيلية باللغة الطبيعية للدوال المفككة مع تحليل أمني تلقائي بما في ذلك مستوى المخاطر، وملف النشاط، وعلامات الأمان، واكتشاف API.

دردشة استعلام تفاعلية — اطرح أسئلة حول الثنائي مع سجل دردشة مستمر. استخدم وحدات الماكرو السياقية (#func, #addr, #line, #range) لحقن كود الدوال، أو العناوين، أو نطاقات التفكيك في الاستعلامات.

إجراءات تلقائية — اقتراحات إعادة تسمية مدعومة بالذكاء الاصطناعي للدوال والمتغيرات والأنواع. راجع التغييرات المقترحة في جدول مع درجات الثقة، ثم طبق الإجراءات المحددة على IDB.

رسم بياني معرفي دلالي — بناء واستكشاف رسم بياني معرفي لدوال الثنائي، وعلاقات الاستدعاء، وتدفقات البيانات، وخصائص الأمان. يتضمن عرضًا رسوميًا للرسم البياني، وبحثًا دلاليًا، واكتشاف المجتمعات.

بحث مستندات RAG — قم بتحميل مستندات مرجعية (.txt, .md, .rst, .pdf) واستخدمها كسياق أثناء استعلامات LLM. يدعم البحث الهجين للنص + المتجه عبر فهرسة Whoosh.

تكامل SymGraph — دفع وسحب أسماء الدوال، وأسماء المتغيرات، والأنواع، وبيانات الرسم البياني إلى منصة SymGraph التعاونية. يتضمن معالجًا متعدد الخطوات مع حل التعارضات للسحب.

إدارة الإعدادات — تكوين مزودي LLM و MCP متعددين، وإدارة بيانات اعتماد API الخاصة بـ SymGraph، وتخصيص موجه النظام، وتعيين مسارات قاعدة البيانات.

القدرات المتقدمة

وكيل ReAct

تدعم علامة التبويب Query وضع وكيل ReAct المستقل (التفكير + الفعل). عند تمكينه، يخطط LLM لاستراتيجية تحقيق، وينفذ أدوات لجمع المعلومات، ويتأمل النتائج، ويصنع إجابة شاملة — كل ذلك تلقائيًا عبر جولات تفكير متعددة.

التفكير الموسع

قم بتكوين مستويات جهد التفكير للتحكم في مقدار ما "يفكر" فيه LLM قبل الرد:

المستوىميزانية التفكيرالأفضل لـ
لا شيءمعطلاستعلامات سريعة وبسيطة
منخفض~2K رمزتحليل مباشر
متوسط~10K رمزتعقيد معتدل
عالي~25K رمزتحليل عميق، كود معقد

تكامل MCP

يمكن لـ IDAssist الاتصال بخوادم MCP خارجية لتفاعلات LLM المعززة بالأدوات حيث يمكن للنموذج فحص الدوال برمجيًا، وقراءة التفكيك، والاستعلام عن المراجع المتقاطعة، وتعديل IDB أثناء التفكير. يتم دعم كل من خوادم MCP المستندة إلى URL (SSE أو Streamable HTTP) وخوادم MCP المستندة إلى stdio التي تبدأ من أمر CLI محلي. توفر IDAssist أيضًا أدوات داخلية مدمجة لاستدعاء الدوال دون الحاجة إلى خادم MCP خارجي.

استدعاء الدوال

يمكن لمزودي LLM الذين يدعمون استدعاء الأدوات استدعاء وظائف تحليل IDA أثناء المحادثة، مما يتيح التحقيق التكراري دون تدخل يدوي.

ملاحظات RLHF

قدم ملاحظات إعجاب/عدم إعجاب على الشروحات وردود الاستعلام. يتم تخزين الملاحظات محليًا ويمكن استخدامها لتحسين هندسة المطالبات واختيار النموذج.

الهندسة

تتبع IDAssist نمط MVC (نموذج-عرض-تحكم):

  • العروض (src/views/) — عناصر واجهة علامات التبويب PySide6 التي تصدر إشارات عند التفاعل مع المستخدم
  • المتحكمات (src/controllers/) — ربط إشارات العرض باستدعاءات الخدمة، وإدارة الحالة
  • الخدمات (src/services/) — منطق الأعمال، مزودي LLM، الوصول إلى قاعدة البيانات، تحليل الرسم البياني
  • الأدوات الداخلية (src/services/internal_tools.py) — تعريفات أدوات خاصة بـ IDA لاستدعاء دوال LLM
  • أدوات الرسم البياني (src/services/graphrag/graphrag_tools.py) — أدوات قراءة/كتابة الرسم البياني الدلالي للتفاعل مع LLM

مبادئ التصميم الرئيسية:

  • يتم تنفيذ جميع استدعاءات API الخاصة بـ IDA على الخيط الرئيسي عبر execute_on_main_thread()
  • يتم بث استجابات LLM بشكل تدريجي إلى واجهة المستخدم
  • قواعد بيانات SQLite محلية للثبات (لا حاجة لقاعدة بيانات خارجية)
  • تسجيل خدمة فردي مع تهيئة آمنة للخيوط

البداية السريعة

  1. تثبيت الإضافة (موصى به — مدير إضافات IDA):

    hcli plugin install idassist
    

    يقوم هذا بتثبيت الإضافة وتبعياتها Python تلقائيًا في بيئة IDA.

  2. أو التثبيت يدويًا (من حزمة الإصدار):

    قم بتنزيل أحدث إصدار 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/.

  3. فتح IDAssist: قم بتشغيل IDA Pro، وافتح ثنائي، واضغط Ctrl+Shift+A (أو Edit > Plugins > IDAssist).

  4. تكوين مزود: اذهب إلى علامة التبويب Settings، وانقر على Add تحت LLM Providers، وقم بتكوين المزود المفضل لديك.

  5. تحليل دالة: انتقل إلى أي دالة، وانقر على علامة التبويب Explain، واضغط على Explain Function.

للحصول على تعليمات إعداد مفصلة، راجع البدء.

إعداد مزود LLM

تدعم IDAssist أنواع المزودين التالية:

النوعطريقة المصادقةملاحظات
anthropic_platformمفتاح APIAnthropic API مباشر
anthropic_oauthOAuth (المتصفح)مصادقة مستندة إلى المتصفح
anthropic_claude_cliCLI محلييستخدم ثنائي CLI claude
bedrockبيانات اعتماد AWSAWS Bedrock Converse API مباشر
openai_platformمفتاح APIOpenAI API مباشر
openai_oauthOAuth (المتصفح)مصادقة مستندة إلى المتصفح
ollamaلا شيء (محلي)نماذج مستضافة ذاتيًا
litellmURL وكيلوكيل متعدد المزودين

النماذج الموصى بها

المزودالنموذجنقاط القوة
Anthropicclaude-sonnet-4-6تحليل كود قوي، تفكير موسع
OpenAIgpt-5.3-codexسريع، تحليل عام جيد
Ollamaqwen2.5-coder:32bمحلي، لا حاجة لمفتاح API

استخدام الرسم البياني الدلالي

توفر علامة التبويب Semantic Graph رسمًا بيانيًا معرفيًا للثنائي:

  1. إعادة فهرسة الثنائي — استخراج هيكل الدالة، ورسم بياني للاستدعاءات، والمراجع المتقاطعة
  2. تحليل دلالي — إنشاء ملخصات LLM لكل دالة
  3. تحليل أمني — اكتشاف أنماط الثغرات وAPIs ذات الصلة بالأمان
  4. تدفق الشبكة — تتبع عمليات الشبكة عبر رسم بياني الاستدعاءات
  5. اكتشاف المجتمعات — تجميع الدوال ذات الصلة في وحدات

استكشف الرسم البياني عبر عرض القائمة (المتصلون، المستدعون، الحواف، العلامات)، الرسم البياني المرئي (مخطط عقدة تفاعلي مع توسيع N-hop)، أو البحث (7 أنواع استعلام بما في ذلك البحث الدلالي، والدوال المشابهة، وسياق الاستدعاء).

إجراءات قائمة السياق

انقر بزر الماوس الأيمن في أي عرض تفكيك أو كود زائف للوصول إلى:

الإجراءالمفتاح الساخنالتأثير
شرح الدالةCtrl+Shift+Eيفتح علامة التبويب Explain وينشئ شرحًا
اسأل عن التحديدCtrl+Shift+Qيفتح علامة التبويب Query مع سياق #func
اقتراحات إعادة التسميةيفتح علامة التبويب Actions وينشئ اقتراحات

المتطلبات

  • IDA Pro 9.0+ مع Python 3 و PySide6
  • مفكك Hex-Rays (موصى به لميزات الكود الزائف)
  • حزم Python المدرجة في requirements.txt

التوثيق

الصفحة الرئيسية

https://symgraph.ai

الترخيص

راجع ملف LICENSE للحصول على التفاصيل.

الفئات