IDAssistMCP
مكون إضافي خادم مستقل لـ (MCP) لنظام IDA Pro 9.x يعرض قدرات تحليل IDA لعملاء LLM مثل Claude Desktop.

الميزات
- 41 أداة MCP تغطي التحليل الثنائي، التفكيك، المراجع المتقاطعة، إدارة الرموز، نظام الأنواع، التنقل، التصحيح، التصدير، والمزيد
- 6 أدوات موحدة مع وسائط
action/format/direction للتعليقات، المتغيرات، الأنواع، المراجع المتقاطعة، العلامات المرجعية، والكود
- 8 موارد MCP لبيانات وصفية ثنائية قابلة للتصفح (التقييم الأولي، الدوال، الاستيرادات، التصديرات، السلاسل النصية، المعلومات، القطاعات، الإقسام)
- 7 موجهات إرشادية لسير عمل الهندسة العكسية الشائعة (تحليل الدوال، تحديد الثغرات، التوثيق، تتبع تدفق البيانات، مقارنة الدوال، استعادة الهيكل، تحليل بروتوكول الشبكة)
- نقل SSE و Streamable HTTP عبر خادم Hypercorn ASGI
- تعديلات آمنة للخيوط في IDB عبر غلاف
execute_on_main_thread()
- ذاكرة تخزين مؤقت LRU للعمليات المكلفة مثل التفكيك
- مدير مهام غير متزامن للعمليات طويلة الأمد
- إعدادات Pydantic مع دعم متغيرات البيئة (بادئة
IDASSISTMCP_)
التثبيت
المتطلبات الأساسية
- IDA Pro 9.x مع Python 3.10+
- مفكك Hex-Rays (اختياري، لأدوات التفكيك)
الخيار 1: مدير إضافات IDA (موصى به)
hcli plugin install idassistmcp
يؤدي هذا إلى تثبيت المكون الإضافي وتبعيات Python الخاصة به تلقائيًا.
الخيار 2: التثبيت اليدوي (من الأرشيف المضغوط للإصدار)
قم بتنزيل أحدث إصدار مضغوط من GitHub Releases واستخرجه إلى دليل إضافات IDA:
Linux / macOS:
unzip IDAssistMCP-*.zip -d ~/.idapro/plugins/
Windows:
استخرج الملف المضغوط إلى %APPDATA%\Hex-Rays\IDA Pro\plugins\.
ثم قم بتثبيت التبعيات باستخدام Python المدمج في IDA (وليس Python النظام):
Linux / macOS:
<IDA_INSTALL_DIR>/python3/bin/pip3 install -r ~/.idapro/plugins/IDAssistMCP/requirements.txt
Windows:
"<IDA_INSTALL_DIR>\python3\python.exe" -m pip install -r "%APPDATA%\Hex-Rays\IDA Pro\plugins\IDAssistMCP\requirements.txt"
استبدل <IDA_INSTALL_DIR> بمسار تثبيت IDA Pro الخاص بك.
تلميح: يمكنك أيضًا استخدام متغير البيئة IDAUSR لتحديد دليل إضافات مخصص.
الاستخدام
بدء الخادم
- افتح ملفًا ثنائيًا في IDA Pro
- اضغط Ctrl+Shift+M أو انتقل إلى Edit > Plugins > IDAssistMCP
- ستتم طباعة عنوان URL لخادم MCP في نافذة إخراج IDA
- اضغط Ctrl+Shift+M مرة أخرى لإيقاف الخادم
تكوين Claude Desktop
أضف إلى ملف claude_desktop_config.json الخاص بـ Claude Desktop:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
متغيرات البيئة
قم بالتكوين عبر متغيرات البيئة ببادئة IDASSISTMCP_:
مرجع الأدوات
إدارة الثنائيات (2)
| الأداة | الوصف |
|---|
list_binaries | سرد الثنائي المحمل حاليًا |
get_binary_info | بيانات وصفية تفصيلية للثنائي (المعمار، التجزئات، القطاعات) |
تحليل الكود (4)
المراجع المتقاطعة (1 موحدة)
| الأداة | الإجراءات | الوصف |
|---|
xrefs | direction: to/from/both, include_calls: bool | المراجع المتقاطعة والمستدعين/المستدعى الاختياريين لعنوان |
التعليقات (1 موحدة)
| الأداة | الإجراءات | الوصف |
|---|
comments | action: get, set, list, remove | إدارة التعليقات (عادية، قابلة للتكرار، دالة) |
المتغيرات (1 موحدة)
| الأداة | الإجراءات | الوصف |
|---|
variables | action: list, rename | سرد المحليين، أو إعادة تسمية المتغيرات المحلية/العالمية مع scope: auto, local, global |
الأنواع (2 — 1 موحدة + 1 مستقلة)
| الأداة | الإجراءات / الوصف |
|---|
types | action: list, set, create_struct, create_enum — إدارة أنواع IDB |
get_classes | سرد أنواع الهياكل/الفئات من مكتبة الأنواع |
اكتشاف الدوال (5)
إدارة الرموز (2)
| الأداة | الوصف |
|---|
rename_symbol | إعادة تسمية أي رمز (دالة أو بيانات) |
batch_rename | إعادة تسمية دفعة لرموز متعددة |
معلومات الثنائي (5)
تحليل البيانات (6)
التصحيح (3)
| الأداة | الوصف |
|---|
patch_bytes | تصحيح البايتات الخام في IDB |
assemble_code | تجميع نص تعليمة في عنوان وتصحيحه اختياريًا |
export_program | تصدير الثنائي المصحح أو قاعدة بيانات IDA إلى القرص |
التنقل (4)
إدارة المهام (4)
| الأداة | الوصف |
|---|
start_task | بدء مهمة خلفية غير متزامنة |
get_task_status | التحقق من تقدم المهمة |
|
هيكل المشروع
IDAssistMCP/
├── idassistmcp_plugin.py # IDA plugin_t entry point
├── requirements.txt
├── README.md
└── src/
└── idassist_mcp/
├── __init__.py
├── server.py # FastMCP server + transport
├── context.py # Single-binary IDA context
├── tools.py # 41 MCP tools (IDA API)
├── resources.py # 8 MCP resources
├── prompts.py # 7 guided workflow prompts
├── config.py # Pydantic settings
├── cache.py # LRU analysis cache
├── tasks.py # Async task manager
├── logging.py # IDA logging wrapper
├── utils.py # IDA-specific utilities
└── ui/
└── tool_registry.py # Tool catalog for UI
الترخيص
راجع ملف LICENSE للحصول على التفاصيل.