
استخراج التسميات من ملفات IDA وGhidra وBinary Ninja وRelyze وتصدير قاعدة بيانات x64dbg. بما في ذلك العنوان الرئيسي لـ radare2.
يستخرج هذا الأمر جميع التسميات الموجودة في ملف LST المعطى كوسيطة واحدة. يتم إنشاء قاعدة بيانات x64dbg في الدليل الحالي بناءً على التسميات المستخرجة.
يمكن إنشاء ملف LST في IDA من قائمة File: Produce file -> Create LST file...
$ lst2x64dbg sample.lst
يستخرج هذا الأمر جميع التسميات الموجودة في ملف CSV المعطى كوسيطة واحدة. يتم إنشاء قاعدة بيانات x64dbg في الدليل الحالي بناءً على التسميات المستخرجة. يجب توفير قيمة imagebase.
يمكن إنشاء ملف CSV في Ghidra من قائمة Window عبر اختيار Symbol Table
في نافذة جدول الرموز التي تفتح، قم بفرز البيانات حسب عمود Location. ثم حدد جميع الرموز التي ليست مواقع خارجية. بعد تحديد الرموز المطلوبة، انقر بزر الفأرة الأيمن واختر: Export -> Export to CSV...
ملاحظة: إذا قمت بتحديد مواقع خارجية، فسيتم تجاهلها.

قم بتسمية هذا الملف <module_name>.csv
$ ghidra2x64dbg -i 400000 sample.csv
يمكن العثور على قيمة imagebase في أعلى لوحة التفكيك في نافذة CodeBrowser. وهي جزء من رأس DOS.

يحتوي Ghidra على خيار تحليل واحد معطل افتراضيًا يمكنه توفير تسميات إضافية للكود في عينة في مواقف معينة. هذا الخيار، WindowsPE x86 Propagate External Parameters، موجود في نافذة خيارات التحليل عند فتح عينة لأول مرة في أداة CodeBrowser.

يستخرج هذا الأمر جميع التسميات الموجودة في ملف JSON من نوع bnida الخاص بـ Binary Ninja المعطى كوسيطة واحدة. يتم إنشاء قاعدة بيانات x64dbg في الدليل الحالي بناءً على التسميات المستخرجة. يجب توفير قيمة imagebase.
لإنشاء ملف bnida من Binary Ninja، يجب أولاً تثبيت الإضافة وفقًا للتعليمات:
https://zznop.github.io/bnida/
بمجرد تحميل الملف القابل للتنفيذ في Binary Ninja، انتقل إلى قائمة Tools واختر bnida: Export analysis data.

قم بتسمية هذا الملف <module_name>.json
$ binja2x64dbg -i 400000 sample.json
يستخرج هذا الأمر جميع التسميات الموجودة في قاعدة بيانات x64dbg التي تم إنشاؤها بواسطة Relyze المعطاة كوسيطة واحدة. يتم إنشاء قاعدة بيانات x64dbg في الدليل الحالي بناءً على التسميات المستخرجة.
لإنشاء قاعدة بيانات x64dbg في Relyze، ما عليك سوى فتح الملف القابل للتنفيذ وفي عرض Code، انقر بزر الفأرة الأيمن، ثم قم بالتصدير.

قم بتسمية هذا الملف <module_name>_relyze.dd32 أو <module_name>_relyze.dd64
$ relyze2x64dbg sample_relyze.dd32
يدعم كلا الأمرين الآن تضمين موقع الدالة main() كما تم اكتشافه بواسطة radare2. فقط أضف -r أو -main إلى أي من الأمرين مثل هذا:
$ lst2x64dbg -r 0x0040a53a sample.lst
فقط قم بقص ولصق العنوان الظاهري للدالة main من واجهة Cutter أو من سطر أوامر radare2.

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