Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
idasql — Vibe Reverse Engineer with IDA SQL: واجهة لـ IDA بلغة SQL عبر جداول افتراضية حيّة | Kitploit
أدوات/GitHubGitHub/allthingsida/idasql
التحليل الثابتالهندسة العكسيةمصممي الأخطاءتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةالهندسة العكسية بمساعدة الذكاء الاصطناعيتحليل البرامج الثابتة
GitHuballthingsida/idasql

idasql

Vibe Reverse Engineer with IDA SQL: واجهة لـ IDA بلغة SQL عبر جداول افتراضية حيّة

عرض المستودع
36320منذ 25 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

IDASQL

امنح أي وكيل ذكاء اصطناعي القدرة على فهم الملفات الثنائية المترجمة.

IDASQL هي واجهة SQL لقواعد بيانات IDA Pro، أنشأها Elias Bachaalany. تُتيح أكثر من 30 جدولًا افتراضيًا تغطي الدوال، والمراجع المتقاطعة، والسلاسل النصية، والأنواع، والواردات، وفك التجميع، وفك الترجمة. استخدم مهارات /idasql من وكيل البرمجة لديك للعمل بشكل كامل بدون واجهة رسومية -- إذ يشغّل الوكيل IDA في الخلفية نيابةً عنك -- أو افتح واجهة IDA وتعاون مع وكيل البرمجة لديك في الهندسة العكسية معًا. لا حاجة إلى IDAPython. لا برمجة نصية. فقط SQL.

لماذا SQL؟ SQL هي لغة الاستعلامات العالمية التي تتحدث بها كل وكلاء الذكاء الاصطناعي بالفعل. IDASQL لا تعتمد على وكيل محدد: Claude وChatGPT وCopilot وCursor والوكلاء المخصصون، أو حتى بدون أي وكيل. أي أداة يمكنها إصدار استعلام SQL يمكنها تحليل ملف ثنائي.

  • لا حاجة إلى فهرسة. IDA لديها بالفعل كل شيء مفهرسًا. تعمل الاستعلامات فورًا على قاعدة البيانات الحية.
  • لا حاجة إلى برمجة نصية. أكثر من 30 جدول SQL تحل محل مئات الأسطر من IDAPython.
  • بدون واجهة رسومية، أو بواجهة رسومية، أو كليهما. اعمل بالكامل بدون واجهة، أو داخل واجهة IDA، أو اربط قواعد بيانات متعددة في الوقت نفسه.
  • قراءة وكتابة. IDASQL ليست مجرد أداة استعلام. فهي تسمح بقراءة وكتابة أهم جوانب قاعدة بيانات IDA: تعليقات فك الترجمة، واستعادة الأنواع، وتطبيق الأنواع (إزاحات البنى والاتحادات)، وكشف تحويلات الأنواع (type casts)، والتخمين التلقائي وتحديث النموذج الأولي الصحيح.

تدعم IDASQL تحليل التعليقات التوضيحية وربطها المرجعي ونقلها بين قاعدة بيانات واحدة أو أكثر في الوقت نفسه. ما يمكنك فعله محدود فقط بخيالك وقوة النموذج الذي تستخدمه.

كيف يعمل

يمتلك IDA Pro بالفعل تنسيق قاعدة بيانات خاصًا به يصف الدوال والسلاسل النصية والمراجع المتقاطعة والأنواع والمزيد. تقوم IDASQL بربط هذه البنى الداخلية بجداول SQL افتراضية مباشرة SQL virtual tables. لا توجد خطوة تصدير أو فهرسة منفصلة -- تُنفَّذ الاستعلامات مباشرة على قاعدة بيانات IDA وتنعكس التغييرات مباشرةً.

root@kitploit:~
                    |
              /idasql skills (LLM translates intent to SQL)
                    |
                 IDASQL  -->  IDA database(s)
                    |
                 Results  -->  LLM summarizes & reasons
root@kitploit:~
Please provide the Markdown content to translate.```
$ idasql -s WerFaultTool.exe.i64 -q "SELECT * FROM funcs LIMIT 5"
Opening: WerFaultTool.exe.i64...
Database opened successfully.

+------+-------------------------------------------------+------+----------+-------+
| addr | name                                            | size | end_addr | flags |
+------+-------------------------------------------------+------+----------+-------+
| 16   | WerFaultTool.AboutForm::.ctor                   | 13   | 29       | 4096  |
| 32   | WerFaultTool.AboutForm::Dispose                 | 30   | 62       | 4096  |
| 64   | WerFaultTool.AboutForm::InitializeComponent     | 295  | 359      | 4096  |
| 400  | WerFaultTool.WerFaultGUI::.ctor                 | 936  | 1336     | 4096  |
| 1344 | WerFaultTool.WerFaultGUI::CreateDynamicControls | 231  | 1575     | 4096  |
+------+-------------------------------------------------+------+----------+-------+
5 row(s)

أمر واحد. نتائج فورية. لا حاجة إلى برمجة نصية.

بدء سريع

بعد تثبيت IDASQL CLI والملحق الإضافي، ابدأ وكيل البرمجة المفضل لديك وابدأ الهندسة العكسية عبر الأوامر النصية. يعمل IDASQL بالكامل دون واجهة رسومية -- وكيلك يدير IDA Pro: تشغيله، تحليله، فك ترجمته، إضافة التعليقات التوضيحية عليه، وحفظه -- أو يُستضاف داخل واجهة IDA الرسومية حيث تتعاون مع وكيلك في الوقت الفعلي.

الشروع في العمل

افتح وكيل البرمجة المفضل لديك (مثل Claude Code) واكتب:``` /idasql:connect Please open sample_malware.exe in the background and let's analyze it together.

root@kitploit:~
يشغّل الوكيل IDASQL في الخلفية بدون واجهة رسومية. من هذه النقطة فصاعدًا، يمكنك الدردشة بشكل طبيعي مع قاعدة البيانات. على سبيل المثال:```
/idasql:annotations Fully annotate the function I'm looking at, also use the decompiler skill.

يقوم النموذج بالتفكير بشكل مستقل في أفضل نهج لفهم الوظيفة، ويقوم بهندستها عكسيًا بالكامل، ويضيف التعليقات التوضيحية عليها.

عند الانتهاء، اطلب من الوكيل الحفظ والإغلاق:``` /idasql:connect Please save all databases and shut down IDASQL.

root@kitploit:~
### العمل مع قواعد بيانات متعددة

يمكنك العمل مع قاعدتي بيانات أو أكثر في نفس الوقت. وجّه وكيلك:```
/idasql:connect In this folder, there are many *.exe files. Please use parallel agents to open IDASQL in the background and report how many functions each has.

ثم تابع:``` Tell me, how many strings all these databases have in common?

root@kitploit:~
الوكيل يعمل مع جميع قواعد البيانات في نفس الوقت. يمكنك الربط المرجعي والمقارنة ونقل التعليقات التوضيحية بينها.

### العمل مع واجهة IDA

كل ما سبق يعمل بالمثل من واجهة IDA الرسومية. لتفعيل وكيلك مع جلسة IDA مفتوحة:

1. في موجه `idasql>` في IDA، اكتب:   ```
   .http start
  1. مخرجات IDA: ``` IDASQL HTTP server: http://127.0.0.1:8174
    root@kitploit:~
  2. في وكيل الترميز الخاص بك: ``` /idasql:connect Let's work with this database: http://127.0.0.1:8174
    root@kitploit:~

الآن أصبح IDASQL وواجهة IDA الخاصة بك متصلين ويعملان معًا.

التثبيت

إضافات وكيل البرمجة (Coding Agent Plugins)

تمنحك مهارات IDASQL لوكيل البرمجة لديك تحكمًا كاملاً في قواعد بيانات IDA من خلال اللغة الطبيعية.

  • Claude Code -- إضافة كاملة تضم 15 مهارة مركزة على مواضيع محددة، تُثبَّت من سوق allthingsida/idasql-skills.
  • GitHub Copilot CLI -- يدعم أيضًا مهارات IDASQL عبر نفس الإضافة.
  • Codex (OpenAI) -- يدعم المهارات عبر نفس حزمة الإضافة. راجع مستودع idasql-skills للحصول على خطوات تثبيت Codex.

المتطلبات الأساسية

  1. IDA Pro مثبتة مع وجود مجلدها في PATH الخاص بك (ida.exe على ويندوز، ida على macOS/Linux)
  2. idasql تم تنزيله من Releases ووضعه بجوار ملف IDA الثنائي
  3. تحقق من الإعداد: يجب أن يعمل الأمر idasql --version من سطر الأوامر

التثبيت (Claude Code)

داخل Claude Code، قم بتشغيل:```text /plugin marketplace add allthingsida/idasql-skills

root@kitploit:~
ثم قم بتثبيت المكوّن الإضافي `idasql` من هذا السوق. راجع [README لـ idasql-skills](https://github.com/allthingsida/idasql-skills#installation) لمعرفة مسارات التثبيت الخاصة بـ Codex وغيرها.

#### المهارات

| المهارة | الوصف |
|-------|-------------|
| `connect` | الاتصال بقواعد بيانات IDA: CLI، خادم HTTP، تهيئة الجلسة، توجيه المهارات، العقود العامة. |
| `disassembly` | الاستعلام عن تفكيك IDA: الدوال، المقاطع، التعليمات، الكتل، المعاملات، الرسوم البيانية. |
| `data` | الاستعلام عن سلاسل IDA، والبايتات، والبيانات الثنائية: البحث، إعادة البناء، أنماط البايت. |
| `xrefs` | تحليل المراجع المتقاطعة في IDA: المستدعون، المستدعى منهم، الواردات، مراجع البيانات، بحث grep. |
| `decompiler` | فك ترجمة دوال IDA: الكود الزائف، شجرة AST لـ ctree، المتغيرات المحلية، التسميات. |
| `annotations` | تحرير قواعد بيانات IDA: التعليقات، إعادة التسمية، الأنواع، العلامات المرجعية، عرض التعداد/الهيكل. |
| `types` | نظام الأنواع في IDA: إنشاء/تعديل/تطبيق الهياكل، الاتحادات، التعدادات، typedefs، parse_decls. |
| `debugger` | مصحح أخطاء IDA: نقاط التوقف، تصحيح البايت، الشروط، جرد التصحيحات. |
| `storage` | تخزين المفتاح-القيمة الدائم في قواعد بيانات IDA عبر netnode_kv. |
| `idapython` | تنفيذ IDAPython عبر idasql: مقاطع برمجية، بيئة معزولة، التقاط الإخراج. |
| `functions` | كتالوج مرجعي كامل لدوال SQL الخاصة بـ idasql. |
| `analysis` | تحليل ملفات IDA الثنائية: الفرز، التدقيق الأمني، اكتشاف التشفير/الشبكة، استعلامات متعددة الجداول. |
| `resource` | إعادة بناء مصادر ملفات IDA الثنائية: تعليق متكرر، استعادة البنية، إعادة بناء الأنواع. |
| `ui-context` | التقاط سياق واجهة مستخدم IDA المباشرة: الشاشة، التحديد، تركيز الأدوات، مراسي العناوين. |

#### أمثلة على المطالبات```
/idasql:analysis analyze this binary; tell me the most called functions.
/idasql:data find functions that reference "password" strings and rank by xrefs.
/idasql:xrefs show callers of CreateFileW and summarize error handling.
/idasql:data identify suspicious hardcoded URLs and the functions that reference them.

مهارات /idasql تقود التحليل من CLI البرمجة الخاص بك -- دون الحاجة إلى كتابة سكربتات IDAPython.

مساعدة CLI``` $ idasql Error: Database path required (-s)

idasql v0.0.18 - SQL interface to IDA databases

Usage: idasql -s [-q ] [-f ] [-i] [--export ]

Options: -s IDA database (.idb/.i64) OR raw binary (.exe/.dll/firmware/etc.) — raw binaries trigger fresh idalib analysis and string-list rebuild — legacy 32-bit .idb files upgrade to .i64 and require an explicit reopen --token Auth token for HTTP/MCP server mode (if server requires it) -q Execute SQL query or semicolon-separated script -f Execute SQL from file -i Interactive REPL mode -w, --write Save database on exit (persist changes) --export Export tables to SQL file (local mode only) --export-tables=X Tables to export: * (all, default) or table1,table2,... --http [port] Start HTTP REST server (default: 8080, local mode only) --bind Bind address for HTTP/MCP server (default: 127.0.0.1) --mcp [port] Start MCP server (default: random port, use in -i mode) Or use .mcp start in interactive mode -h, --help Show this help --version Show version

Examples: idasql -s test.i64 -q "SELECT name, size FROM funcs LIMIT 10" idasql -s test.i64 -q "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;" idasql -s test.i64 -f queries.sql idasql -s test.i64 -i idasql -s test.i64 --export dump.sql idasql -s test.i64 --http 8080 idasql -s sample.exe --http # raw PE: idalib auto-analyzes, then serves SQL (default port 8080) idasql -s firmware.bin -q "SELECT * FROM binary" idasql -s test.i64 --mcp 9000

Thank you for using IDA. Have a nice day!

root@kitploit:~
Legacy 32-bit `.idb` inputs are upgraded by idalib to a sibling `.i64`. When that
happens, idasql exits before serving SQL, returns exit code `3`, and prints one
JSON object to stdout with `status:"upgraded"` and `reopen_with`. Repeat the same
operation with `-s <reopen_with>`.

</details>

### البناء من المصدر

#### المتطلبات الأساسية

- CMake 3.20+
- مترجم C++20
- IDA SDK 9.0+ (اضبط متغير البيئة `IDASDK`)```bash
cmake -S . -B build -DIDASQL_WITH_MCP=ON -DIDASQL_BUILD_EXAMPLES=OFF
cmake --build build --config Release

Useful CMake switches:

تنزيل الأداة
الوضعطريقة البدءالأنسب لـ
واجهة سطر أوامر مستقلةidasql -s binary.i64 -iSQL مباشر، برمجة نصية، خطوط أنابيب
إضافة IDAاختر idasql من القائمة المنسدلة لواجهة أوامر IDASQL داخل الواجهة الرسومية، قاعدة بيانات حية
سير عمل المهارة/idasql:connect في واجهة أوامر البرمجة لديكتحليل بقيادة الذكاء الاصطناعي -- حيث يصدر الوكيل استعلامات SQL بشكل مستقل
You / Agent --> Natural language or SQL
SwitchDefaultDescription
IDASQL_WITH_MCPONإنشاء دعم خادم MCP عبر fastmcpp. عطّله لبناء أصغر/بدون إنترنت أو عندما لا تحتاج إلى --mcp / .mcp.
IDASQL_BUILD_CLIONبناء الأداة المستقلة لسطر الأوامر idasql.
IDASQL_BUILD_PLUGINONبناء إضافة IDA.
IDASQL_BUILD_EXAMPLESONبناء البرامج المثال تحت examples/.

Notes:

  • دعم Hex-Rays يُضمَّن دائمًا ولا يُكتشَف إلا في وقت التشغيل. إذا كان Hex-Rays غير متاح، فببساطة لا تُسجَّل الجداول/الدوال المدعومة بالمفكك.
  • دعم REST عبر HTTP يُضمَّن دائمًا؛ استخدم --http من CLI أو .http start من REPL/CLI الخاص بالإضافة.
  • تنفيذ SQL عبر IDAPython مُضمَّن لكنه معطّل افتراضيًا في وقت التشغيل. فعّله لكل جلسة باستخدام PRAGMA idasql.enable_idapython = 1;.
  • IDASQL_WITH_MCP=ON يجلب fastmcpp؛ بينما OFF يزيل دعم MCP وأوامر --mcp / .mcp.
  • XSQL_WITH_THINCLIENT مُجبَر على ON، وHTTPLIB_USE_OPENSSL_IF_AVAILABLE مُجبَر على OFF لأن IDASQL يستخدم HTTP محليًا غير مشفَّر.

الجداول المتاحة

أكثر من 30 جدولًا افتراضيًا تغطي الدوال، والسلاسل، والأنواع، والمراجع المتبادلة، والتفكيك، والتفكيك العكسي للكود، والمزيد.

الأساسية

TableDescription
funcsالدوال - الاسم، العنوان، الحجم، عنوان النهاية، الأعلام (INSERT/UPDATE/DELETE)
segmentsالمقاطع - الاسم، عنوان البداية/النهاية، الصلاحيات، الصنف (INSERT/UPDATE/DELETE)
namesالمواقع المسمّاة - العنوان، الاسم، الأعلام (INSERT/UPDATE/DELETE)
entriesنقاط الدخول - عمليات الاسترجاع للتصدير/البرنامج/TLS (الترتيب، العنوان، الاسم)
importsالاستيرادات - الوحدة، الاسم، العنوان، الترتيب
xrefsالمراجع المتبادلة - العنوان من/إلى، النوع، is_code
blocksالكتل الأساسية - عنوان البداية/النهاية، func_addr، الحجم
fchunksأجزاء الدوال - الأجزاء المنقسمة/الذيلية مع المالك
instructionsالتفكيك - العنوان، رمز العملية، المعاملات، itype، func_addr (UPDATE معامل format_spec / DELETE)
instruction_operandsمعاملات تعليمات طبيعية - opnum، النص، النوع، القيمة؛ مُحسَّنة حسب addr و func_addr
headsجميع عناصر head (كود + بيانات) - بحث محسَّن عن العناوين وتنقل عبر النطاقات

السلاسل والبايتات

TableDescription
stringsالسلاسل - العنوان، المحتوى، الطول، النوع
bytesالبايتات الخام - value/word/dword/qword قابلة للكتابة (UPDATE يطبّق الترقيعات، DELETE يعيد الحالة)، original_value، is_patched (عدّ سريع للترقيعات عبر WHERE is_patched = 1)

المفكك

TableDescription
pseudocodeالكود الزائف المُفكَّك عبر Hex-Rays
ctreeعُقد شجرة ctree من Hex-Rays
ctree_lvarsالمتغيرات المحلية من تفكيك Hex-Rays
ctree_call_argsتفاصيل وسائط استدعاءات Hex-Rays لكل موقع استدعاء
ctree_labelsتسميات ctree في Hex-Rays (أهداف goto)

الأنواع

TableDescription
typesمكتبة الأنواع - البنيات والنقابات والتعدادات مع الأعضاء (INSERT/UPDATE/DELETE)
types_membersتفاصيل أعضاء البنية/النقابة (INSERT/UPDATE/DELETE)
types_enum_valuesقيم أعضاء التعداد (INSERT/UPDATE/DELETE)
types_func_argsتفاصيل وسائط أنواع الدوال
local_typesإدخالات مكتبة الأنواع المحلية

التعليقات التوضيحية

TableDescription
commentsالتعليقات - العنوان، التعليقات العادية والمتكررة (INSERT/UPDATE/DELETE)
bookmarksالإشارات المرجعية - الفتحة، العنوان، الوصف (INSERT/UPDATE/DELETE)
breakpointsنقاط التوقف - العنوان، النوع، مفعّلة، الشرط (CRUD كامل)
hidden_rangesالنطاقات المطوية/المخفية - البداية/النهاية، الوصف، الرأس، التذييل

البحث

TableDescription
grepجدول بحث موحّد للكيانات (النمط، الاسم، النوع، العنوان، الترتيب، parent_name، full_name)

معلومات قاعدة البيانات

TableDescription
binaryملخص/نظرة عامة لقاعدة البيانات - المعالج، عدد البتات، نطاق العناوين، العدادات
db_infoأزواج القيمة-المفتاح لبيانات تعريف قاعدة البيانات
ida_infoأزواج القيمة-المفتاح لمعلومات تحليل IDA
problemsمشاكل/تحذيرات تحليل IDA
signaturesحالة توقيعات FLIRT
fixupsإدخالات التصحيح/إعادة التوطين
mappingsتعيينات مساحات العناوين

التخزين

TableDescription
netnode_kvتخزين قيم-مفاتيح دائم (netnode)

التحليل

TableDescription
disasm_callsمخطط الاستدعاءات - أزواج المستدعي/المستدعى لكل دالة
disasm_loopsكشف الحلقات - كتل الرأس والحواف الرجعية

دوال SQL

FunctionDescription
decompile(addr)فكّك الدالة عند العنوان (يُرجع كودًا زائفًا)
disasm_at(addr)قائمة التفكيك القياسية عند العنوان
get_ui_context_json()JSON سياق واجهة المستخدم — متاح مباشرة في إضافة GUI؛ دالة تجريبية "غير قابلة للتطبيق" في CLI/idalib

البحث الموحّد للكيانات

استخدم جدول grep لعمليات بحث SQL قابلة للتركيب عبر الدوال المسمّاة، والتسميات، والمقاطع، والأنواع، والأعضاء.```sql -- Search anything starting with "Create" SELECT name, kind, printf('0x%X', addr) as addr FROM grep WHERE pattern = 'Create%' LIMIT 20;

-- Search anywhere in name (plain text performs a contains search) SELECT name, kind, full_name FROM grep WHERE pattern = 'File' AND kind IN ('function', 'import') LIMIT 20;

-- Find struct members SELECT name, parent_name, full_name FROM grep WHERE pattern = 'dw%' AND kind = 'member';

-- Pagination SELECT name, kind, full_name FROM grep WHERE pattern = 'Create%' ORDER BY kind, name LIMIT 20 OFFSET 20;

root@kitploit:~
## التكامل

### HTTP REST API

خادم HTTP عديم الحالة للتكامل البسيط. لا حمل بروتوكول إضافي.```bash
idasql -s database.i64 --http 8080

The input content is missing — the chunk text was not included in your message. Please provide chunk 33 of 53 so I can translate it into Arabic.```bash curl http://localhost:8080/status curl -X POST http://localhost:8080/query -d "SELECT name FROM funcs LIMIT 5" curl -X POST http://localhost:8080/query -d "SELECT * FROM binary; SELECT COUNT(*) FROM funcs;"

root@kitploit:~
جميع استجابات `/query` تستخدم الغلاف البرمجي الأساسي — العبارة الواحدة = مصفوفة من عنصر واحد:```
{
  "success": true,
  "statement_count": <N>,
  "results": [
    { "statement_index": 0, "success": true, "columns": [...], "rows": [...], "row_count": <N>, "elapsed_ms": <ms>, "error": null },
    ...
  ],
  "row_count_total": <N>,
  "elapsed_ms_total": <ms>,
  "first_error_index": null
}

الفشل السريع هو السلوك الافتراضي؛ مرّر continue_on_error=true (مثل ?continue_on_error=1) لتنفيذ كل عبارة بغضّ النظر عن الإخفاقات السابقة. كل results[i].error هو المرجع الأساسي لأخطاء كل عبارة؛ ويشير first_error_index إلى أول إخفاق أو يكون null. عند فشل المقسم (مثل اقتباس غير مغلق) تكون الاستجابة success:false وstatement_count:0 وresults:[] بالإضافة إلى parse_error على المستوى الأعلى.

لقواعد بيانات متعددة، شغّل حالات منفصلة:```bash idasql -s malware.i64 --http 8080 idasql -s kernel.i64 --http 8082

root@kitploit:~
النقاط الطرفية: `/status`, `/help`, `/query`, `/shutdown`

#### خادم HTTP من REPL

ابدأ تشغيل خادم HTTP بشكل تفاعلي من REPL أو من واجهة سطر الأوامر الخاصة بإضافة IDA:```
idasql -s database.i64 -i
idasql> .http start
HTTP server started on port 8142
URL: http://127.0.0.1:8142
...
Press Ctrl+C to stop and return to REPL.

في إضافة IDA (غير محظورة):``` idasql> .http start HTTP server started on port 8142 idasql> .http stop HTTP server stopped

root@kitploit:~
يستخدم الخادم منفذًا عشوائيًا (8100-8199) لتجنب التعارضات مع `--http`.

### التشغيل التلقائي (التثبيت)

`.pin` يُثبّت تفضيل الخادم في قاعدة بيانات IDB (netnode `$ idasql config`) بحيث **يبدأ المكوّن الإضافي لـ IDA تلقائيًا** خادم HTTP أو MCP كلما تم فتح قاعدة البيانات تلك — وهو مفيد للإعدادات متعددة الحالات حيث تحتفظ كل قاعدة بيانات بمنفذ مستقر ومعروف.```
idasql> .pin set http 8080        # pin HTTP at 127.0.0.1:8080 (autostart on)
idasql> .pin set mcp 0.0.0.0 9500 # bind override + port (port optional; omit or 0 = fresh random port each launch)
idasql> .pin list                 # show pinned config
idasql> .pin off http             # disable autostart but keep host/port
idasql> .pin clear all            # remove all pins

بعد التثبيت (pinning)، تؤدي إعادة فتح قاعدة البيانات إلى تشغيل الخادم تلقائيًا — ستلاحظ ذلك في نافذة إخراج IDA عند التحميل:``` IDASQL v0.0.18: Query engine initialized IDASQL CLI: Installed IDASQL: autostart -> IDASQL HTTP server: http://127.0.0.1:8099 Type '.http stop' to stop the server.

root@kitploit:~
`.pin` (أو `.pin list`) يعرض الإعداد الحالي لكلا الخدمتين:```
idasql> .pin
Autostart pins:
  http 127.0.0.1:8099  (autostart: on)
  mcp  (not set)
  • يحدث بدء التشغيل التلقائي عند التحميل في المكوّن الإضافي لـ IDA فقط. أمر .pin نفسه يعمل في كلٍّ من واجهة الأوامر والمكوّن الإضافي (واجهة الأوامر تقرأ/تكتب قيمة التثبيت فقط).
  • يعيد .http start / .mcp start بدون منفذ صريح استخدام المضيف/المنفذ المثبَّت.
  • من واجهة الأوامر، لا تُحفظ تغييرات .pin إلا عند التشغيل باستخدام -w/--write (مثل أي تعديل آخر على IDB).

خادم MCP

لعملاء متوافقين مع MCP (بروتوكول سياق النموذج، معيار لتكامل أدوات الذكاء الاصطناعي):

يتوفر --mcp و.mcp عند البناء باستخدام -DIDASQL_WITH_MCP=ON، وهو الإعداد الافتراضي. ابنِ باستخدام -DIDASQL_WITH_MCP=OFF لاستبعاد دعم MCP.```bash

Standalone mode

idasql -s database.i64 --mcp idasql -s database.i64 --mcp 9500 # specific port

Or in interactive mode

idasql -s database.i64 -i .mcp start

root@kitploit:~
قم بتكوين عميل MCP الخاص بك:```json
{
  "mcpServers": {
    "idasql": { "url": "http://127.0.0.1:<port>/sse" }
  }
}

الأدوات: idasql_query (استعلام SQL مباشر أو سكربت مفصول بفواصل منقوطة)

عائلة xsql

IDASQL جزء من عائلة أدوات تُوفّر منصات مختلفة لتحليل الثنائيات ومعلومات التصحيح عبر سطح SQL نفسه، وكلها مبنية على إطار عمل الجداول الافتراضية المشترك libxsql. الاستعلام الذي تتعلمه على أداة واحدة ينطبق إلى حد كبير على الأدوات الأخرى — على سبيل المثال، نفس SELECT name, size FROM funcs ORDER BY size DESC LIMIT 10 يعمل في كل مكان.

منصات الهندسة العكسية

  • bnsql — قواعد بيانات Binary Ninja بصيغة SQL.
  • ghidrasql — قواعد بيانات Ghidra بصيغة SQL.

معلومات التصحيح وبيانات المترجم

  • pdbsql — ملفات رموز PDB في Windows بصيغة SQL.
  • dwarfsql — معلومات تصحيح DWARF بصيغة SQL.
  • clangsql — شجرة AST الخاصة بـ Clang بصيغة SQL.

النواة

  • libxsql — إطار عمل الجداول الافتراضية لـ SQLite بلغة C++ الذي تُبنى عليه جميع الأدوات المذكورة أعلاه.

صُنع باستخدام

  • libxsql - مكتبة C++17 من نوع Header-only لعرض هياكل بيانات C++ كجداول افتراضية في SQLite. توفر واجهة برمجة إنشاء سلسة (fluent builder API) لتعريف الجداول، ودعم دفع القيود (constraint pushdown)، وعميل HTTP رفيع.

  • fastmcpp - تنفيذ اختياري لخادم MCP يُستخدم عند البناء باستخدام -DIDASQL_WITH_MCP=ON.

الترخيص وشروط الاستخدام

باختصار: يمكنك قراءة idasql غير المعدّل وبناؤه وتقييمه وقياس أدائه وتعبئته واستخدامه، بما في ذلك الاستخدام التجاري، شريطة الحفاظ على الإشعارات واتباع شروط الترخيص. ويمكنك عمل fork أو patch عليه لإعداد إصلاحات للأخطاء، أو تحسينات، أو ميزات، أو اختبارات، أو تحسينات للتوثيق، بهدف إعادة المساهمة بها ضمن قواعد غرض المساهمة المنصوص عليها في الترخيص.

لا يجوز لك الإبقاء على fork خاص متباعد، أو نقل (port)، أو إعادة تسمية تجارية (rebrand)، أو استنساخ (clone)، أو بديل متوافق مع API، أو تنفيذ منافس، أو استخدام idasql كمدخلات للذكاء الاصطناعي لإعادة إنشاء أو تحسين تنفيذ مشتق، دون إذن كتابي مسبق من Elias Bachaalany. ولا تُحظر التنفيذات المستقلة التي ليست منسوخة من idasql، ولا مشتقة منه ماديًا، ولا مستندة إليه بشكل جوهري، بالمعنى المحدد في الترخيص.

طلبات الإذن: افتح issue على GitHub في allthingsida/idasql/issues.

إذا كان مشروع موزع يستمد معلوماته بشكل جوهري من idasql، فحافظ على الأصل البشري: اذكر idasql وElias Bachaalany بشكل واضح في README/التوثيق الخاص بك وفي واجهة المستخدم الخاصة بـ About/credits عند الاقتضاء. ويتضمن الترخيص قسم أمثلة/الأسئلة الشائعة (FAQ) للاستخدامات الشائعة المسموح بها والتي تتطلب إذنًا. وتبقى تبعيات الأطراف الثالثة (libxsql، وIDA SDK، وتبعياتهما غير المباشرة) خاضعة لتراخيصها الخاصة.

راجع النسخة الكاملة من Human-Origin Source License v1.0.