
إضافة توفر موارد للمبتدئين لتعلّم الهندسة العكسية باستخدام Binary Ninja. تقوم بتثبيت العديد من الإضافات الأخرى تلقائيًا، وتوفر أمثلة تعرض ميزات هذه الإضافات.
أدوات تعليمية لـ Binary Ninja
توفر هذه الإضافة موارد للمبتدئين لتعلم الهندسة العكسية باستخدام Binary Ninja. تقوم تلقائيًا بتثبيت عدة إضافات أخرى، وتوفر أمثلة تعرض مزايا هذه الإضافات.
هذا المشروع هو نتاج برنامج التدريب الصيفي لعام 2017 لدى NCC Group. ستتم متابعة التحديثات اللاحقة على https://github.com/ehennenfent/binja_sensei. لا تتحمل NCC Group مسؤولية أي تغييرات إضافية تُجرى على المستودع بعد 18 أغسطس 2017.
تحصينًا للمستقبل، يثبّت Binja Sensei الإضافات عبر واجهة برمجة تطبيقات مدير الإضافات (Plugin Manager API) غير المكتملة بعد. وبما أن مدير الإضافات لا يمتلك حاليًا واجهة رسومية (GUI)، يجب إتمام التثبيت بتشغيل المقتطف التالي في وحدة تحكم البرامج النصية في Binary Ninja (يمكن الوصول إليها عبر Ctrl+`).
manager = RepositoryManager()
manager.enable_plugin('binja_sensei', install=True)
ملاحظة: اعتمادًا على وقت تثبيتك لـ Binja، قد تحتاج إلى تشغيل manager.check_for_updates() وإعادة تشغيل Binja حتى تظهر هذه الإضافة. أنصح بشدة بالتثبيت على آلة افتراضية (VM) نظيفة.
إذا كنت تستخدم هذا قبل 31 أغسطس 2017، فستحتاج إلى استخدام إصدار التطوير من Binary Ninja، لأن تثبيت التبعيات يعتمد على b0778fc و326253a.
بعد ذلك، أعد تشغيل Binary Ninja. عند التحميل، سيقوم Sensei بتحديث جميع الإضافات المضمنة إلى أحدث إصدار، وتثبيت أي تبعيات Python لكل إضافة. لكنه لن يشغّل نصوص التثبيت تلقائيًا؛ لذا إذا كنت تستخدم Ubuntu وتنوي إعداد binja_dynamics، فستحتاج إلى الانتقال إلى ~/.binaryninja/repositories/default/plugins/binja_dynamics وتشغيل ./install.sh.
إذا فشلت أي من عمليات تثبيت الإضافات، فقد يكون التثبيت اليدوي أكثر نجاحًا. وإلى حين حل Issue #753، قد لا تعمل بعض الإضافات التي تعتمد على مسارات ملفات مطلقة (absolute paths) ما لم تُثبَّت يدويًا. للتثبيت اليدوي، انسخ روابط المستودعات ذات الصلة أدناه واستنسخها داخل دليل الإضافات لديك.
https://github.com/carstein/Annotator.git
https://github.com/ehennenfent/binja_arch_ref.git
https://github.com/ehennenfent/binja_dynamics.git
https://github.com/ehennenfent/binja_explain_instruction.git
https://github.com/carstein/Syscaller.git
يُرجى ملاحظة أن الأدوات المضمنة تظل ملكًا لمؤلفيها الأصليين. وبينما تُقدَّم هذه الإضافة بموجب رخصة MIT، فإن تلك الرخصة لا تمتد إلى أيٍّ من الإضافات أدناه.
لإظهار حالات الاستخدام المحتملة لهذه الإضافات، تم تضمين حلول لتحديات الفائض الخمسة من PicoCTF 2013. يُرجى ملاحظة أنه ربما أُجريت تغييرات طفيفة في الوظائف ونظام الألوان وإصلاحات الأخطاء منذ إنشاء الشروحات.
يستخدم Annotator مكدسًا افتراضيًا لإضافة تعليقات توضيحية إلى استدعاءات دوال libc مع نماذج وسائطها.

تعرض هذه الإضافة ورقة مرجعية سريعة (cheat sheet) تحتوي معلومات Binary Ninja الداخلية حول البنية.

تضيف هذه الإضافة واجهة أمامية مبنية على Qt إلى Binjatron، وتتضمن إبرازات تهدف إلى مساعدة المبتدئين على تحديد مواقع الذاكرة المهمة.

تضيف نافذة منبثقة تشرح بلغة إنجليزية بسيطة ما تفعله تعليمة التجميع (assembly instruction).

يضيف تعليقات توضيحية لاستدعاءات النظام مع وسائطها.
