Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
BinDiffHelper — إضافة Ghidra لدمج BinDiff لمطابقة الدوال | Kitploit
أدوات/GitHubGitHub/ubfx/bindiffhelper
التحليل الثابتتحليل الكودالهندسة العكسيةتحليل البرمجيات الخبيثةالأدوات والمكوناتتحليل الملفات الثنائيةاستغلال الملفات الثنائية
GitHububfx/bindiffhelper

BinDiffHelper

إضافة Ghidra لدمج BinDiff لمطابقة الدوال

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

الأكثر شعبية

عرض الكل →

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

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

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

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

BinDiffHelper

إضافة Ghidra تستخدم BinDiff على مشروع Ghidra الخاص بك للعثور على الدوال المتطابقة وإعادة تسميتها تلقائيًا (BinDiff 6، 7، 8 مدعومة). اطّلع على دليل BinDiff لمعرفة كيفية عمله وكيفية مطابقة الدوال / الكتل الأساسية. ومع ذلك، باستخدام هذه الإضافة، يتم أتمتة BinDiff من داخل Ghidra، لذا لا تحتاج إلى إجراء diff للملفات الثنائية بنفسك.

يرجى الإبلاغ عن الأخطاء عبر ميزة issues على github

سجل التغييرات

v0.7.1

  • تحديث لـ Ghidra 12

v0.7.0 (إصدارات Ghidra >= 11.4)

  • لا تغييرات باستثناء التوافق مع إصدار Ghidra

v0.6.4 (إصدارات Ghidra < 11.4)

  • دعم تصدير namespace
  • إصلاح التعليق غير المحدود عند إجراء diff

v0.6.3

  • السماح بفرز الجدول

v0.6.2

  • إصلاح خطأ حيث يتوقف diff إلى الأبد على BinDiff 8
  • عند النقر المزدوج على رمز، اتبعه في كل من قوائم الكود الأساسية والثانوية

v0.6

  • تحديث مكتبة مشغل sqlite، يجب أن تعمل الآن على Apple silicon
  • دعم diffs نصية خارجية بين الدوال المفككة (انظر https://github.com/ubfx/BinDiffHelper/pull/24)
  • تحديثات واجهة المستخدم

v0.5

  • دعم BinDiff 8
  • إصدار لـ Ghidra 11.1
التغييرات الأقدم ### v0.4.3 * إصدار لـ Ghidra 11.0

v0.4.2

  • إضافة وظيفة لاستيراد جميع الدوال (وليس فقط تلك المحددة في الجدول)
  • إضافة وظيفة لتبديل مربع الاختيار لعدة عناصر في الجدول
  • تحديث لدعم Ghidra 10.3

v0.4.1

  • تحديث لدعم Gradle 7.5 و Ghidra 10.1

v0.4.0

  • دعم BinDiff 7 و Ghidra 10

v0.3.2

  • إصلاح خطأ حيث لم يعمل diff مع ملف مختلف من نفس المشروع
  • إصلاح خطأ حيث لا يمكن إجراء diff للملفات ذات الأسماء القصيرة (< 3 أحرف>)

v0.3.1

  • إصلاح انهيار عند فتح ملف عبر خيار "from project"

v0.3

  • تلوين الدوال المتطابقة في القائمة
  • إضافة تعليقات للدوال المتطابقة في القائمة تربط بالملف الثنائي الآخر
  • إصلاح خطأ حيث كانت مكتبة protobuf مفقودة في بعض الإصدارات
  • قائمة تحميل ملف جديدة

v0.2

  • إصلاح خطأ حيث كان الملف المراد الاستيراد إليه بحاجة إلى check out.
  • زيادة حجم مربع حوار اختيار ملف المشروع

v0.1

  • إجراء BinDiff للملف الثنائي المفتوح في Ghidra مع ملف ثنائي آخر من نفس مشروع Ghidra، وعرض النتائج واستيراد أسماء الدوال
  • فتح ملف BinDiff، تم إنشاؤه باستخدام BinDiff 6، من ملفي .BinExport واستيراد أسماء الدوال المتطابقة في Ghidra

كيفية التثبيت

إما تنزيل ملف .zip من الإصدار، إذا كان متوافقًا مع إصدار Ghidra الخاص بك، وإلا انظر كيفية البناء أدناه.

  1. افتح Ghidra
  2. في النافذة الرئيسية: اذهب إلى File->Install Extensions...
  3. انقر على زر + في الزاوية العلوية اليمنى واختر ملف BinDiffHelper zip
  4. أغلق مدير الإضافات. أعد تشغيل Ghidra لتحميل الإضافة الجديدة
  5. انظر الاستخدام أدناه

أدوات أخرى موصى بها

  • إضافة BinExport ملفات ثنائية أو مُجمّعة من المصدر لإصدار Ghidra المحدد الخاص بك
  • BinDiff (https://zynamics.com/software.html)

بدون هذه، ستتمكن فقط من استيراد ملفات .BinDiff وليس التصدير وإجراء diff تلقائيًا من مشروع Ghidra الخاص بك

الاستخدام

تأكد من تحميل الإضافة في Code Explorer عن طريق فتح ملف في Ghidra وفي Code Explorer اذهب إلى File->Configure

انقر على أيقونة القابس الصغيرة في الزاوية العلوية اليمنى:

Configure tool

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

Configure plugins

استيراد .BinDiff خارجي

يجب أن تكون ملفات .BinExport المقابلة في نفس المجلد.

افتح الملف الذي تريد استيراد الأسماء إليه في متصفح الكود، ثم اذهب إلى Window->BinDiffHelper Open BinDiffHelper

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

Example import

حدد جميع أسماء الدوال التي تريد استيرادها وانقر على زر Import function names في الزاوية العلوية اليمنى أو عنصر القائمة.

المقارنة بين الملفات في مشروع Ghidra

اذهب إلى Window->BinDiffHelper، تأكد من عدم وجود تحذيرات تتعلق بـ BinExport أو BinDiff، ثم انقر على زر Open from project.

اختر الملف الآخر من الشجرة وانقر على OK.

Example project import

كيفية البناء

المتطلبات:

  • تثبيت Ghidra (https://ghidra-sre.org) أو مُجمّع من المصدر
  • بعض jdk. قد تكون هناك قيود معينة اعتمادًا على كيفية بناء Ghidra الخاص بك وما هي الإضافات الأخرى التي تستخدمها. أوصي باستخدام Temurin 21 LTS، حيث يبدو أن هذا يعمل حاليًا مع كل من BinExport و BinDiffHelper.
  • gradle (تم اختباره مع 7.5، 8.10)

استنساخ المستودع

استنسخ المستودع بشكل متكرر، لأنه يعتمد على 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، إليك بعض الملاحظات حول ذلك:

  1. استنسخ وابنِ Ghidra ودع gradle ينشئ مشاريع eclipse وفقًا لـ DevGuide
  2. استورد المشاريع إلى eclipse (تأكد من أنه يحتوي على الإضافات ذات الصلة لتطوير الإضافات)
  3. قم بتثبيت PyDev (http://www.pydev.org/updates كمستودع eclipse)
  4. قم بتثبيت GhidraDev
  5. قم بفك ضغط بناء Ghidra واربط GhidraDev به. ربما يجب تعيين متغير البيئة GHIDRA_INSTALL_DIR
  6. قم بتشغيل Ghidra من eclipse وقم بتثبيت إضافة BinExport
  7. أنشئ مشروع BinDiffHelper eclipse باستخدام gradle build eclipse
  8. استورده إلى eclipse واستخدم GhidraDev لربطه ببناء Ghidra.
  9. Debug As->Ghidra

قد تكون هناك بعض تعارضات classpath بين classpath الذي تم إنشاؤه بواسطة gradle build eclipse وتعديلات classpath التي يقوم بها GhidraDev. قد يساعد في إزالة جميع ملفات .jars من تثبيت Ghidra الأساسي من مشروع الإضافة والسماح لـ GhidraDev بإعادة إضافتها. إذا فشل تصحيح eclipse بعد ذلك، فقد يساعد إغلاق وإعادة فتح مشروع الإضافة في eclipse. عند تصحيح Ghidra مع الإضافة من خارج eclipse، يتم تحميل الإضافة إلى Ghidra تلقائيًا (لا تمر عبر تثبيت الإضافة المعتاد). ومع ذلك، يجب تمكين الإضافة في Code Explorer.

المراجع

  • https://github.com/google/bindiff/releases
  • https://www.zynamics.com/bindiff/manual/
  • https://github.com/google/binexport/

الأيقونات من: Fatcow free icons

تنزيل الأداة