
Diaphora، أداة مقارنة البرامج الحرة ومفتوحة المصدر الأكثر تقدمًا.
ثبّت باستخدام مدير إضافات Hex-Rays:
hcli plugin install https://github.com/joxeankoret/diaphora/archive/refs/tags/3.4.2.zip
تعليمات التثبيت اليدوي أدناه.
Diaphora (διαφορά، كلمة يونانية تعني 'الاختلاف') الإصدار 3.4 هو الأداة الأكثر تقدمًا لمقارنة البرامج (تعمل كإضافة لـ IDA) المتوفرة حتى اليوم (2026). صدرت لأول مرة خلال SyScan 2015 وما زالت تُصان بنشاط منذ ذلك الحين: فقد تم نقل Diaphora لمدة 11 عامًا بالفعل إلى كل إصدار ثانوي من IDA منذ 6.8 حتى 9.4.
تدعم Diaphora إصدارات IDA >= 7.4 لأن الكود يعمل فقط في Python 3.X (كان Python 3.11 آخر إصدار تم اختباره).
تمتلك Diaphora العديد من ميزات مقارنة البرامج (bindiffing) الأكثر شيوعًا التي قد تتوقعها، مثل:
علاوة على ذلك، تمتلك Diaphora أيضًا العديد من الميزات الفريدة غير المتوفرة في أي أداة عامة أخرى. فيما يلي قائمة غير شاملة بالميزات الفريدة:
لا تتطلب Diaphora أي تثبيت: فقط قم بتنزيل الكود وشغّل السكربت diaphora.py من داخل IDA أو من سطر الأوامر (لمقارنة قواعد البيانات المُصدَّرة مسبقًا فقط). ومع ذلك، يمكن دمجها كـ إضافة في IDA باتباع ما يلي:
plugins/diaphora_plugin.py و plugins/diaphora_plugin.cfg إلى مجلد الإضافات الخاص بـ IDA.diaphora_plugin.cfg واضبط قيمة المسار إلى مجلد Diaphora.يمكنك مساعدة (أو شكر) مؤلف Diaphora من خلال تقديم تبرع. إذا كنت ترغب في ذلك يمكنك استخدام أحد الروابط التالية:
لا تتردد في فتح مشكلات (issues) على GitHub إذا واجهت أي مشكلة أو كنت بحاجة إلى مساعدة. إذا كنت تفضل الدردشة التفاعلية، يمكنك استخدام قناة Discord التالية: https://discord.gg/atg34w2xjV
كانت إصدارات Diaphora قبل 1.2.4، بما في ذلك الإصدار 1.2.4، مرخصة بموجب GNU GPL version 3. منذ الإصدار 2.0، أصبحت Diaphora مرخصة الآن بموجب GNU Affero GPL version 3 license. تم تغيير الترخيص بحيث لا يمكن للشركات التي ترغب في تعديل وتكييف Diaphora تقديم خدمات ويب بناءً على هذه النسخ المعدلة دون إعادة المساهمة بالتغييرات.
بالنسبة لـ 99.99% من المستخدمين، لا يؤثر تغيير الترخيص عليهم إطلاقًا. إذا كانت شركتك بحاجة إلى نموذج ترخيص مختلف، فاطّلع على القسم التالي...
يُقدَّم الدعم التجاري والاستشارات للشركات القانونية. إذا كنت بحاجة إلى دعم أو استشارات بشأن مشاكل تواجهها مع هدفك، أو لتطوير منتجات مبنية على Diaphora، أو لاستخدام Diaphora داخليًا بالتفاعل مع أدواتك الخاصة، أو لمشاريع كشف الانتحال، إلخ... يمكنك التواصل معي على [email protected] لمزيد من التفاصيل.
إذا كانت شركتك لا تسمح باستخدام رخصة AGPL، فيمكنك الحصول على تراخيص تجارية لـ Diaphora لاستخدامها في شركتك أو لاستخدامها كفرد في أي شركة تعمل بها (مفهوم مشابه لتراخيص IDA المسماة). لمزيد من التفاصيل، يرجى التواصل معي على [email protected].
يرجى تذكر أن من يمنعك من استخدام Diaphora ليس أنا: بل شركتك. شكرًا لتفهمك.
إذا كنت تبحث عن كيفية أتمتة عملية التصدير أو المقارنة، أو تريد تسريع العمليات، إلخ... قد ترغب في إلقاء نظرة على الويكي حيث يتم الإجابة على مثل هذه الأسئلة.
Diaphora تعثر على الدالة المحددة التي تم فيها تصحيح ثغرة CVE-2020-1350:

Diaphora، مرة أخرى، تعثر على الدالة المحددة التي تم فيها إصلاح CVE-2023-28231:

CVE-2023-28231. كما هو موضح في مدونة من ZDI، تم إصلاح الثغرة عن طريق التحقق من أن عدد رسائل إعادة التوجيه (relay forward messages) في "ProcessRelayForwardMessage()" ليس أكبر أو يساوي 32 (0x20)، كما هو موضح في مقارنة الكود الزائف التالية:

Diaphora تقوم بمقارنة الميكروكود في Hex-Ray:

مقارنة لغة التجميع والكود الزائف والميكروكود:

مقارنة CVE-2023-21768 مع Diaphora 3.0:

هذه لقطة شاشة لـ Diaphora وهي تقارن ثغرة نواة PEGASUS iOS التي تم إصلاحها في iOS 9.3.5:
وهذه لقطة شاشة قديمة لـ Diaphora وهي تقارن النشرة الأمنية من Microsoft MS15-034:
Diaphora تقارن MS15-034
هذه بعض لقطات الشاشة لـ Diaphora وهي تقارن النشرة الأمنية من Microsoft MS15-050، مأخوذة من مقالة المدونة تحليل MS15-050 باستخدام Diaphora بقلم Alex Ionescu.

إليك لقطة شاشة لـ Diaphora وهي تقارن iBoot من iOS 10.3.3 مقابل iOS 11.0: