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

action/format/direction للتعليقات، المتغيرات، الأنواع، المراجع المتقاطعة، العلامات المرجعية، والكودexecute_on_main_thread()IDASSISTMCP_)hcli plugin install idassistmcp
يؤدي هذا إلى تثبيت المكون الإضافي وتبعيات Python الخاصة به تلقائيًا.
قم بتنزيل أحدث إصدار مضغوط من 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لتحديد دليل إضافات مخصص.
أضف إلى ملف claude_desktop_config.json الخاص بـ Claude Desktop:
{
"mcpServers": {
"idassistmcp": {
"url": "http://localhost:9080/mcp"
}
}
}
قم بالتكوين عبر متغيرات البيئة ببادئة IDASSISTMCP_:
| المتغير | الافتراضي | الوصف |
|---|---|---|
IDASSISTMCP_SERVER__HOST | localhost | عنوان ربط الخادم |
IDASSISTMCP_SERVER__PORT | 9080 | منفذ الخادم |
IDASSISTMCP_SERVER__TRANSPORT | streamablehttp | نوع النقل (sse أو streamablehttp) |
IDASSISTMCP_DEBUG | false | تفعيل وضع التصحيح |
IDASSISTMCP_LOG_LEVEL | INFO | مستوى السجل |
| الأداة | الوصف |
|---|---|
list_binaries | سرد الثنائي المحمل حاليًا |
get_binary_info | بيانات وصفية تفصيلية للثنائي (المعمار، التجزئات، القطاعات) |
| الأداة | الوصف |
|---|---|
get_code | الحصول على كود الدالة — format: 'decompile' (شبه C) أو 'disasm' (التجميع) |
analyze_function | تحليل شامل: بيانات وصفية، CFG، المستدعين/المستدعى، التفكيك |
get_basic_blocks | الكتل الأساسية لـ CFG مع الخلفاء/السابقون |
get_function_stack_layout | تخطيط إطار المكدس (المحليون، الوسائط، السجلات المحفوظة) |
| الأداة | الإجراءات | الوصف |
|---|---|---|
xrefs | direction: to/from/both, include_calls: bool | المراجع المتقاطعة والمستدعين/المستدعى الاختياريين لعنوان |
| الأداة | الإجراءات | الوصف |
|---|---|---|
comments | action: get, set, list, remove | إدارة التعليقات (عادية، قابلة للتكرار، دالة) |
| الأداة | الإجراءات | الوصف |
|---|---|---|
variables | action: list, rename | سرد المحليين، أو إعادة تسمية المتغيرات المحلية/العالمية مع scope: auto, local, global |
| الأداة | الإجراءات / الوصف |
|---|---|
types | action: list, set, create_struct, create_enum — إدارة أنواع IDB |
get_classes | سرد أنواع الهياكل/الفئات من مكتبة الأنواع |
| الأداة | الوصف |
|---|---|
get_functions | جميع الدوال مع التصفية والترقيم |
search_functions_by_name | البحث بنمط الاسم ومرشحات الحجم |
get_function_by_name | البحث الدقيق بالاسم |
get_function_by_address | البحث بالعنوان |
get_function_statistics | إحصائيات مجمعة (الأعداد، الأحجام، أعلى 10) |
| الأداة | الوصف |
|---|---|
rename_symbol | إعادة تسمية أي رمز (دالة أو بيانات) |
batch_rename | إعادة تسمية دفعة لرموز متعددة |
| الأداة | الوصف |
|---|---|
get_imports | جدول الاستيرادات مجمعة حسب الوحدة |
get_exports | جدول التصديرات |
get_strings | جدول السلاسل النصية مع الترقيم |
get_segments | قطاعات الذاكرة مع الأذونات |
get_entry_points | جميع نقاط الدخول للثنائي |
| الأداة | الوصف |
|---|---|
read_memory | قراءة البايتات الخام في عنوان |
get_data_at | الحصول على البيانات المنمّطة في عنوان |
search_bytes | البحث عن نمط بايتات ثنائي |
search_strings | البحث عن سلاسل نصية مع الترقيم |
create_data_var | تعريف متغير بيانات في عنوان (byte/word/dword/qword/float/ascii/نوع C) |
get_data_vars | سرد متغيرات البيانات المعرفة (عناصر غير تعليمات) |
| الأداة | الوصف |
|---|---|
patch_bytes | تصحيح البايتات الخام في IDB |
assemble_code | تجميع نص تعليمة في عنوان وتصحيحه اختياريًا |
export_program | تصدير الثنائي المصحح أو قاعدة بيانات IDA إلى القرص |
| الأداة | الوصف |
|---|---|
navigate_to | تحريك مؤشر IDA إلى عنوان |
bookmarks | إدارة العلامات المرجعية الموحدة - الإجراءات: list, set, remove |
get_current_address | الحصول على العنوان والسياق في موضع المؤشر |
get_current_function | الحصول على معلومات الدالة في موضع المؤشر |
| الأداة | الوصف |
|---|---|
start_task | بدء مهمة خلفية غير متزامنة |
get_task_status | التحقق من تقدم المهمة |
cancel_task | إلغاء مهمة قيد التشغيل |
list_tasks | سرد جميع المهام غير المتزامنة |
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 للحصول على التفاصيل.