
Vibe Reverse Engineer مع IDA Pro: واجهة لـ IDA في SQL عبر الجداول الافتراضية الحية. لا تدع المظاهر تخدعك! :)
امنح أي وكيل ذكاء اصطناعي القدرة على فهم الملفات الثنائية المُجمَّعة.
IDASQL هي واجهة SQL لقواعد بيانات IDA Pro، من إنشاء Elias Bachaalany. تكشف عن أكثر من 30 جدولاً افتراضياً تغطي الدوال، والمراجع المتقاطعة، والسلاسل النصية، والأنواع، والواردات، والتفكيك، والتفكيك العكسي. استخدم مهارات /idasql من وكيل البرمجة الخاص بك للعمل بشكل بلا واجهة تماماً -- يشغّل الوكيل IDA في الخلفية نيابةً عنك -- أو افتح واجهة IDA وتعاون مع وكيل البرمجة الخاص بك للهندسة العكسية معاً. لا IDAPython. لا برمجة نصية. فقط SQL.
لماذا SQL؟ SQL هي لغة الاستعلام العالمية التي يتحدثها كل وكيل ذكاء اصطناعي بالفعل. IDASQL محايدة تجاه الوكلاء: Claude، أو ChatGPT، أو Copilot، أو Cursor، أو وكلاء مخصصون، أو بدون وكيل على الإطلاق. أي أداة قادرة على إصدار استعلام SQL يمكنها تحليل ملف ثنائي.
تدعم IDASQL تحليل وربط ونقل التعليقات التوضيحية بين قاعدة بيانات واحدة أو أكثر في الوقت نفسه. ما يمكنك فعله محدود فقط بخيالك وقوة النموذج الذي تستخدمه.
IDA Pro لديها بالفعل تنسيق قاعدة بيانات خاص بها يصف الدوال، والسلاسل النصية، والمراجع المتقاطعة، والأنواع، والمزيد. تقوم IDASQL بربط هذه البنى الداخلية بـجداول SQL الافتراضية الحية. لا توجد خطوة تصدير أو فهرسة منفصلة -- تُنفَّذ الاستعلامات مباشرة على قاعدة بيانات IDA وتنعكس التغييرات فورياً.
| الوضع | كيفية البدء | الأفضل لـ |
|---|---|---|
| واجهة سطر الأوامر المستقلة | idasql -s binary.i64 -i | SQL مباشر، البرمجة النصية، خطوط الأنابيب |
| إضافة IDA | اختر idasql من القائمة المنسدلة لواجهة سطر أوامر IDA | SQL داخل الواجهة الرسومية، قاعدة بيانات حية |
| سير عمل المهارات | /idasql:connect في واجهة سطر أوامر البرمجة الخاصة بك | تحليل مدفوع بالذكاء الاصطناعي -- يصدر الوكيل استعلامات SQL بشكل مستقل |
You / Agent --> Natural language or SQL
|
/idasql skills (LLM translates intent to SQL)
|
IDASQL --> IDA database(s)
|
Results --> LLM summarizes & reasons
$ 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.
يبدأ الوكيل 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.
يمكنك العمل مع قاعدتي بيانات أو أكثر في وقت واحد. اطلب من وكيلك:
/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?
يعمل الوكيل مع جميع قواعد البيانات في الوقت نفسه. يمكنك المقارنة المرجعية والمقارنة ونقل التعليقات التوضيحية بينها.
كل ما سبق يعمل بالتساوي من واجهة IDA الرسومية. لربط وكيلك بجلسة IDA مفتوحة:
في موجّه idasql> الخاص بـ IDA، اكتب:
.http start
مخرجات IDA:
IDASQL HTTP server: http://127.0.0.1:8174
في وكيل البرمجة الخاص بك:
/idasql:connect Let's work with this database: http://127.0.0.1:8174
الآن IDASQL وواجهة IDA UI الخاصة بك متصلان ويعملان معًا.
مع IDA 9.4، يمكن للإجابات أن ترتبط مباشرةً بـ IDA. يحوّل جدول deep_links أي
دالة أو عنوان أو سلسلة نصية أو نوع إلى رابط ida:// بتنسيق Copy Link الخاص بـ IDA،
بالإضافة إلى معامل إضافي واحد، idb_path، وهو المسار الكامل لقاعدة البيانات. يتجاهله IDA؛
بينما يستخدمه معالج النقر في idasql لتشغيل IDA على قاعدة البيانات الصحيحة. تفتح روابط الدوال
المفكك (disassembler) (أو التفكيك بدون مفكك)، بينما تفتح الروابط الأخرى التفكيك:
SELECT f.name, dl.uri
FROM funcs f
JOIN deep_links dl ON dl.resource = 'functions' AND dl.addr = f.addr AND dl.view = 'pseudocode'
ORDER BY f.size DESC LIMIT 5;
يقوم وكيل البرمجة بعرض هذه كأسماء قابلة للنقر. لجعل النقر يفتح IDA:
idasql link register # handle ida:// links (a replaced handler, such as hcli's, is saved)
idasql link unregister # remove it and restore the saved handler
idasql link open -- "ida:///sample.exe.i64/functions?rva=0x1130&view=pseudocode"
idasql link list # running IDA 9.4 instances and their databases