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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
bindiff — ابحث بسرعة عن الاختلافات وأوجه التشابه في الكود المُفكَّك | Kitploit
أدوات/GitHubGitHub/google/bindiff
التحليل الثابتتحليل الثغرات الأمنيةالهندسة العكسيةتحليل البرمجيات الخبيثةتحليل الملفات الثنائيةالأوراق والأبحاثالتعلم والتعليمتحليل البرامج الثابتة
GitHubgoogle/bindiff

bindiff

ابحث بسرعة عن الاختلافات وأوجه التشابه في الكود المُفكَّك

عرض المستودع
3.1k238منذ 2 أيامتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

BinDiff Logo

حقوق النشر 2011-2026 Google LLC.

BinDiff

يحتوي هذا المستودع على الكود المصدري لـ BinDiff. BinDiff هي أداة مفتوحة المصدر لمقارنة الملفات الثنائية، لتتيح العثور بسرعة على الاختلافات وأوجه التشابه في الكود المفكك.

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

  • حول BinDiff
  • بدء الاستخدام السريع
  • التوثيق
  • خريطة الكود
  • البناء من المصدر
  • الترخيص
  • المشاركة

حول BinDiff

BinDiff هي أداة مفتوحة المصدر لمقارنة الملفات الثنائية، تساعد باحثي الثغرات الأمنية والمهندسين على العثور بسرعة على الاختلافات وأوجه التشابه في الكود المفكك.

باستخدام BinDiff، يمكن للباحثين تحديد وعزل الإصلاحات الخاصة بالثغرات الأمنية في التصحيحات المقدمة من البائعين. كما يمكن استخدامه لنقل الرموز والتعليقات بين عمليات التفكيك لإصدارات متعددة من نفس الملف الثنائي. وهذا يسهّل تتبع التغييرات بمرور الوقت، ويتيح للمؤسسات الاحتفاظ بنتائج التحليل، ويمكّن من نقل المعرفة بين محللي الملفات الثنائية.

حالات الاستخدام

  • مقارنة الملفات الثنائية لبنى x86 و MIPS و ARM و PowerPC وغيرها من البنى المدعومة من أدوات التفكيك الشائعة.
  • تحديد الدوال المتطابقة والمتشابهة في ملفات ثنائية مختلفة
  • نقل أسماء الدوال والتعليقات والأسماء المحلية من عملية تفكيك إلى أخرى
  • اكتشاف وإبراز التغييرات بين نسختين من نفس الدالة

بدء الاستخدام السريع

إذا كنت تريد البدء في استخدام BinDiff فحسب، يمكنك تنزيل حزم التثبيت المعدّة مسبقًا من صفحة الإصدارات.

ملاحظة: يعتمد BinDiff على أداة تفكيك منفصلة. وهو يأتي بشكل افتراضي مع دعم لـ IDA Pro و Binary Ninja و Ghidra. تعرض صفحة أدوات التفكيك الترتيبات المدعومة.

التوثيق

يتوفر جزء من الدليل الحالي في دليل docs/.

خريطة الكود

يتكون BinDiff من المكوّنات التالية:

  • cmake - ملفات بناء CMake التي تصرّح بالاعتماديات الخارجية
  • fixtures - مجموعة من ملفات الاختبار لاختبار المحرك الأساسي لـ BinDiff
  • ida - التكامل مع أداة التفكيك IDA Pro
  • java - الكود المصدري بلغة Java. يحتوي على واجهة المستخدم المرئية للفرق في BinDiff ومكتبة الأدوات المساعدة المقابلة.
  • match - خوارزميات المطابقة للمحرك الأساسي لـ BinDiff
  • packaging - مصادر الحزم لحزم التثبيت
  • tools - ملفات تنفيذية مساعدة تُشحن مع المنتج

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

التعليمات أدناه كافية لبناء كل من الكود الأصلي والمكوّنات القائمة على Java.

ستُضاف تعليمات بناء أكثر تفصيلاً في وقت لاحق. ويتضمن ذلك ملفات Dockerfile جاهزة ونصوصًا برمجية لبناء حزم التثبيت.

الكود الأصلي

يستخدم BinDiff أداة CMake لتوليد ملفات البناء الخاصة بالمكوّنات التي تتكون من كود C++ أصلي.

يلزم توفر اعتماديات البناء التالية:

  • BinExport 12، الإضافة المصاحبة لـ BinDiff والتي تحتوي أيضًا على الكثير من الكود المشترك
  • الإصدار 1.83.0 أو أعلى من Boost (تأتي نسخة جزئية من 1.83.0 مع BinExport وستُستخدم تلقائيًا)
  • CMake 3.14 أو أحدث
  • Ninja للبناء السريع
  • GCC 15 أو إصدار حديث من Clang على Linux/macOS. أما على Windows، فاستخدم مترجم Visual Studio 2022 و Windows SDK الخاص بنظام Windows 11.
  • Git 1.8 أو أحدث
  • اعتماديات سيتم تنزيلها:
    • Abseil, GoogleTest, Protocol Buffers (3.14), and SQLite3
    • Binary Ninja SDK
    • IDA SDK

خطوات البناء العامة هي نفسها على Windows و Linux و macOS. فيما يلي الأوامر الخاصة بنظام Linux.

بعد ذلك، قم بتهيئة دليل البناء وتوليد ملفات البناء:

root@kitploit:~
cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release

أخيرًا، نفّذ عملية البناء الفعلية. ستوضع الملفات الثنائية في build/:

root@kitploit:~
cmake --build build --config Release
(cd build; ctest --build-config Release --output-on-failure)
cmake --install build --config Release

البناء بدون IDA

للبناء بدون IDA، غيّر ببساطة خطوة التهيئة السابقة إلى

root@kitploit:~
cmake -S . -B build/out -G Ninja -DCMAKE_BUILD_TYPE=Release \
  -DBINEXPORT_ENABLE_IDAPRO=OFF

واجهة Java الرسومية و yFiles

يتطلب بناء واجهة المستخدم الرسومية القائمة على Java مكتبة التصور الرسومي التجارية من جهة خارجية yFiles لعرض الرسوم البيانية وترتيبها. هذه المكتبة قوية للغاية وليس من السهل استبدالها.

للبناء، يستخدم BinDiff الإصدار Gradle 6.x و Java 11 LTS. راجع دليل التثبيت للحصول على تعليمات التثبيت.

بافتراض أنك تمتلك ترخيص yFiles، عيّن متغير البيئة YFILES_DIR إلى دليل يحتوي على ملفي yFiles y.jar و ysvg.jar.

ملاحظة: لا يزال BinDiff يستخدم الفرع الأقدم 2.x من yFiles.

ثم شغّل Gradle لتنزيل الاعتماديات الخارجية والبناء:

Windows:

root@kitploit:~
set YFILES_DIR=<path\to\yfiles_2.17>
cd java
gradle shadowJar

Linux أو macOS:

root@kitploit:~
export YFILES_DIR=<path/to/yfiles_2.17>
cd java
gradle shadowJar

بعد ذلك، يجب أن يحتوي الدليل ui/build/libs في الدليل الفرعي java على الأداة المستقلة bindiff-ui-all.jar، والتي يمكن تشغيلها باستخدام الأمر القياسي java -jar.

قراءات إضافية / أدوات مشابهة

الأوراق البحثية الأصلية التي تعرض الأفكار العامة وراء BinDiff:

  • Thomas Dullien و Rolf Rolles. المقارنة القائمة على الرسوم البيانية للكائنات القابلة للتنفيذ. bindiffsstic05-1.pdf. SSTIC ’05، ندوة أمن تقنيات المعلومات والاتصالات. 2005.
  • Halvar Flake. المقارنة البنيوية للكائنات القابلة للتنفيذ. dimva_paper2.pdf. الصفحات 161-173. كشف التسلل وتقييم البرمجيات الخبيثة والثغرات الأمنية. 2004.3-88579-375-X.

أدوات أخرى في نفس المجال:

  • Diaphora، أداة متقدمة لمقارنة البرامج تنفّذ العديد من الأفكار نفسها.
  • TurboDiff، إضافة لمقارنة البرامج خاصة بـ IDA Pro لم تعد قيد التطوير.

مشاريع تستخدم BinDiff:

  • VxSig، أداة لتوليد توقيعات بايت لمضادات الفيروسات تلقائيًا من مجموعات من الملفات الثنائية المتشابهة.

الترخيص

تُرخّص BinDiff وفق شروط ترخيص Apache. راجع LICENSE لمزيد من المعلومات.

المشاركة

إذا كنت ترغب في المساهمة، يرجى قراءة CONTRIBUTING.md قبل إرسال طلبات السحب. يمكنك أيضًا الإبلاغ عن الأخطاء أو تقديم طلبات ميزات.

تنزيل الأداة