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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
binja_dynamics — واجهة أمامية مبنية بـ PyQt5 للمكوّن الإضافي binjatron الخاص بـ Binary Ninja، تتضمن ميزات تظليل تهدف إلى تسهيل تعلّم الهندسة العكسية للمبتدئين. | Kitploit
أدوات/GitHubGitHub/nccgroup/binja_dynamics
التحليل الديناميكي (عزل)الهندسة العكسيةمصممي الأخطاءتحليل الملفات الثنائيةالتعلم والتعليم
GitHubnccgroup/binja_dynamics

binja_dynamics

واجهة أمامية مبنية بـ PyQt5 للمكوّن الإضافي binjatron الخاص بـ Binary Ninja، تتضمن ميزات تظليل تهدف إلى تسهيل تعلّم الهندسة العكسية للمبتدئين.

عرض المستودع
256منذ 9 سنواتتمت المراجعة من قبل Kitploit

الأكثر شعبية

عرض الكل →

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

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

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

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

أدوات التحليل الديناميكي لـ Binary Ninja

يضيف هذا المشروع واجهة أمامية مبنية على PyQt5 إلى إضافة binjatron في Binary Ninja، وتتضمن ميزات تظليل تهدف إلى تسهيل تعلّم الهندسة العكسية للمبتدئين.

الدافع

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

غالبًا ما يُروَّج لـ Binary Ninja بين الطلاب نظرًا لتكلفته المنخفضة نسبيًا وواجهته النظيفة وسهولة استخدامه. كما توفر اللغات الوسيطة منخفضة المستوى ومتوسطة المستوى طريقة سهلة لفهم ما تفعله التعليمات. يهدف هذا المشروع إلى جعل Binary Ninja أداة أفضل للمبتدئين من خلال تسهيل تصوّر تنفيذ الثنائيات.

المكونات

  • التصحيح عبر Binjatron
  • شريط أدوات المصحح
  • عارض السجلات
  • عارض المكدس
  • عارض التتبع الخلفي

النشأة

هذا المشروع هو ثمرة برنامج التدريب الصيفي لعام 2017 في NCC Group. يمكن اعتبار مكونات التصحيح المرئي خليفةً روحيًا لـ Microcorruption، وهي مسابقة CTF أمنية مدمجة أُنتجت بواسطة Matasano Security. ستُتتبَّع التحديثات اللاحقة على https://github.com/ehennenfent/binja_dynamics. لا تتحمل NCC Group مسؤولية أي تغييرات لاحقة تُجرى على المستودع بعد 18 أغسطس 2017.

التثبيت

داخل مجلد إضافات Binary Ninja لديك، شغّل:

root@kitploit:~
git clone https://github.com/ehennenfent/binja_dynamics.git
cd binja_dynamics
./install.sh

الاستخدام

بعد تحميل ثنائي، انقر على عنصر Enable Dynamic Analysis Tools في قائمة الأدوات. ستظهر نافذة مصحح يمكنك التحكم بها عبر الأزرار الموجودة في شريط الأدوات. أثناء تنقلك خطوة بخطوة عبر التنفيذ، يتم تحديث الواجهة في الوقت الفعلي لتعكس حالة البرنامج. بفضل Binjatron، يتم تظليل التعليمات الحالية وأي نقاط توقف في عرض الثنائي. بالنسبة لكل عنوان ذاكرة ولكل سجل، يتم تظليل القيمة باللون البرتقالي كلما تغيّرت نتيجةً للتعليمة السابقة. وعلى نحو مماثل، يتم تظليل أعلى وأسفل إطار المكدس الحالي (بالإضافة إلى الموقع المتوقع لعنوان العودة) لتسهيل تحديد الأجزاء المهمة من الذاكرة بالنسبة للمبتدئين. يعرض عارض التتبع الخلفي أثرًا خلفيًا لإطارات المكدس الحالية، ويوفر زرًا ينقل عرض الثنائي تلقائيًا إلى الموقع المحدد بعنوان الذاكرة الذي تتوقع الإضافة العثور على عنوان العودة عنده. في بعض الدوال، لا يتم تفكيك إطار المكدس بالطريقة التي تتوقعها الإضافة، لذلك قد لا يكون عنوان العودة المتوقع صحيحًا دائمًا.

Screenshot

التظليل

(في لقطة الشاشة أعلاه، يظهر مؤشر القاعدة باللون الأخضر الزيتوني)

  • التعليمات الحالية - أحمر
  • نقطة التوقف - أزرق
  • ذاكرة أو سجل متغير - نص برتقالي
  • مؤشر المكدس - أخضر فاتح
  • مؤشر القاعدة - أزرق فاتح
  • عنوان العودة المتوقع - أحمر
  • مؤشر التعليمات (حيثما ينطبق) - أحمر ساطع

التوثيق

الكود

في بعض الأحيان، قد يكون من الضروري الرجوع إلى الكود المصدري لفهم السلوك الدقيق للواجهات. واستباقًا لهذه الحاجة، تم شرح الكثير من قرارات التصميم وتفاصيل التنفيذ في تعليقات سطرية.

الويكي

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

الأمثلة

يُفضَّل الاطلاع على مستودع binja_sensei للحصول على أمثلة قد تساعدك في البدء.

القيود الحالية

  • حاليًا، تُدعم ثنائيات x86(64) لنظام Linux فقط. وحتى مع هذا القيد، قد توجد ثنائيات تتصرف بطريقة لا تستطيع binja_dynamics أو Voltron التعامل معها. نشجعك على تقديم طلب سحب (pull request) أو إشعار مشكلة (issue) مع أي أخطاء تواجهها.
  • تم اختبار binja_dynamics على Ubuntu 16.04 فقط. وبينما يبدو دعم Windows خارج نطاق الاحتمال بسبب طريقة عمل إعادة توجيه الطرفية، فمن الممكن تحقيق وظائف معقولة على منصات يونكس الأخرى. ومرة أخرى، نرحب بطلبات السحب وإشعارات المشكلات.
  • نظرًا لأن Binary Ninja و binjatron يعتمدان على Python 2.7، يجب استبدال إصدار GDB المُرفق مع Ubuntu بإصدار يدعم Python 2.7 قبل تثبيت binja_dynamics. تبيَّن أن سكريبت التثبيت يقوم بذلك بنجاح على آلة Ubuntu 16.04 افتراضية نظيفة، لكن تحديثات GDB أو تحديثات Ubuntu أو المكونات المثبتة مسبقًا (إذا لم تكن تثبّت على آلة افتراضية نظيفة) قد تُعطّله.
  • لأسباب تتعلق بالأداء، يعرض عارض الذاكرة محتويات مقطعي المكدس (stack) وBSS فقط.
  • انظر المشكلات للمزيد

محتوى طرف ثالث

  • تستخدم binja_dynamics نسخة مشتقة (fork) من qthexedit، المرخصة بموجب GPLv2.
  • الصور المستخدمة للأيقونات مرخصة بموجب المشاع الإبداعي (Creative Commons). راجع attribution.txt للحصول على معلومات حول المصادر.

المتطلبات

  • binjatron
  • binja_toolbar
  • binja_spawn_terminal
  • voltron
  • PyQt5
  • Binary Ninja

باستثناء Binary Ninja، سيتولى install.sh التعامل مع هذه التبعيات نيابةً عنك.

تنزيل الأداة