
إضافة Ghidra لدمج BinDiff لمطابقة الدوال
إضافة Ghidra تستخدم BinDiff على مشروع Ghidra الخاص بك للعثور على الدوال المتطابقة وإعادة تسميتها تلقائيًا (BinDiff 6، 7، 8 مدعومة). اطّلع على دليل BinDiff لمعرفة كيفية عمله وكيفية مطابقة الدوال / الكتل الأساسية. ومع ذلك، باستخدام هذه الإضافة، يتم أتمتة BinDiff من داخل Ghidra، لذا لا تحتاج إلى إجراء diff للملفات الثنائية بنفسك.
يرجى الإبلاغ عن الأخطاء عبر ميزة issues على github
إما تنزيل ملف .zip من الإصدار، إذا كان متوافقًا مع إصدار Ghidra الخاص بك، وإلا انظر كيفية البناء أدناه.
بدون هذه، ستتمكن فقط من استيراد ملفات .BinDiff وليس التصدير وإجراء diff تلقائيًا من مشروع Ghidra الخاص بك
تأكد من تحميل الإضافة في Code Explorer عن طريق فتح ملف في Ghidra وفي Code Explorer اذهب إلى File->Configure
انقر على أيقونة القابس الصغيرة في الزاوية العلوية اليمنى:

وتأكد من تحديد مربع الاختيار بجانب BinDiffHelperPlugin.

يجب أن تكون ملفات .BinExport المقابلة في نفس المجلد.
افتح الملف الذي تريد استيراد الأسماء إليه في متصفح الكود، ثم اذهب إلى Window->BinDiffHelper

استخدم زر Open from BinDiff أو عنصر القائمة واختر ملف .BinDiff الخاص بك.

حدد جميع أسماء الدوال التي تريد استيرادها وانقر على زر Import function names في الزاوية العلوية اليمنى أو عنصر القائمة.
اذهب إلى Window->BinDiffHelper، تأكد من عدم وجود تحذيرات تتعلق بـ BinExport أو BinDiff، ثم انقر على زر Open from project.
اختر الملف الآخر من الشجرة وانقر على OK.

المتطلبات:
استنسخ المستودع بشكل متكرر، لأنه يعتمد على BinExport لتعريف protocol buffer المقابل.
git clone --recurse-submodules https://github.com/ubfx/BinDiffHelper.git
تحتاج إلى تعيين متغير البيئة GHIDRA_INSTALL_DIR إلى دليل تثبيت Ghidra.
إذا كان لديك JDKs مختلفة مثبتة، تأكد من أن متغير البيئة JAVA_HOME يشير إلى الذي يستخدمه تثبيت Ghidra الخاص بك.
سيتم بناء الإضافة لإصدار Ghidra هذا تحديدًا.
ثم اذهب إلى مجلد BinDiffHelper في shell الخاص بك وقم بتنفيذ
gradle
سيؤدي هذا إلى بناء كل من BinExport في الوحدة الفرعية المقابلة و BinDiffHelper في الدليل الأصلي. يجب أن يكون قد تم إنشاء ملف .zip في دليل dist. استخدم ملف .zip هذا للتثبيت وفقًا للتعليمات أعلاه.
أحيانًا يكون من المفيد أن تكون قادرًا على تصحيح الإضافة مع Ghidra، إليك بعض الملاحظات حول ذلك:
GHIDRA_INSTALL_DIRgradle build eclipseقد تكون هناك بعض تعارضات classpath بين classpath الذي تم إنشاؤه بواسطة gradle build eclipse وتعديلات classpath التي يقوم بها GhidraDev. قد يساعد في إزالة جميع ملفات .jars من تثبيت Ghidra الأساسي من مشروع الإضافة والسماح لـ GhidraDev بإعادة إضافتها. إذا فشل تصحيح eclipse بعد ذلك، فقد يساعد إغلاق وإعادة فتح مشروع الإضافة في eclipse.
عند تصحيح Ghidra مع الإضافة من خارج eclipse، يتم تحميل الإضافة إلى Ghidra تلقائيًا (لا تمر عبر تثبيت الإضافة المعتاد). ومع ذلك، يجب تمكين الإضافة في Code Explorer.
الأيقونات من: Fatcow free icons