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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ghidralligator — مُحاكي pcode متعدد البُنى المعمارية يستخدم Ghidra/Sleigh لاختبار الفيزينج عبر AFL++ للملفات الثنائية والبرامج الثابتة والأهداف المدمجة؛ يكتشف أخطاء إفساد الذاكرة عبر ASAN. | Kitploit
أدوات/GitHubGitHub/airbus-cyber/ghidralligator
أمان الأنظمة المدمجةالتحليل الديناميكي (عزل)تحليل الثغرات الأمنيةالاختبار العشوائيتحليل الملفات الثنائيةتحليل البرامج الثابتة
GitHubairbus-cyber/ghidralligator

ghidralligator

مُحاكي pcode متعدد البُنى المعمارية يستخدم Ghidra/Sleigh لاختبار الفيزينج عبر AFL++ للملفات الثنائية والبرامج الثابتة والأهداف المدمجة؛ يكتشف أخطاء إفساد الذاكرة عبر ASAN.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

Ghidralligator_logo

Ghidralligator

License

Ghidralligator هو محاكٍ (emulator) متعدد البنى المعمارية مكتوب بلغة C++ لـ pcode، مبني على Ghidra libsla، ومصمم للاختبار العشوائي (fuzzing) باستخدام AFL++.

يتيح إجراء اختبار عشوائي قائم على المحاكاة مع الحفاظ على أداء مثير للاهتمام عند التعامل مع الملفات الثنائية التي تعمل على بنى معمارية غير مألوفة.

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

التثبيت

يمكن تشغيل Ghidralligator على نظام Linux. يتطلب فقط وجود إصدار GCC يدعم لغة C++ الإصدار 17 (تم اختباره ويعمل على إصدار GCC 12.2.0).

تبعيات Ghidra مدمجة داخل المشروع نفسه ضمن المجلد "./src/".

لتثبيت Ghidralligator بشكل صحيح، يجب عليك تنزيل وترجمة AFL++ كما يلي:

  1. استنسخ وتثبيت AFL++
root@kitploit:~
git clone https://github.com/AFLplusplus/AFLplusplus
cd AFLplusplus
make distrib
sudo make install
  1. استنسخ وترجم Ghidralligator:
root@kitploit:~
git clone https://github.com/airbus-cyber/ghidralligator
cd ghidralligator
make ghidralligator
  1. احصل على ملف .sla المناسب للبنية المعمارية التي تريد محاكاتها. يمكنك كتابة ملف .sla بنفسك، أو تنزيل ملفات جاهزة من مستودع Ghidra الرسمي (هنا). يمكنك العثور على مجموعة من ملفات .sla الافتراضية مدمجة داخل المشروع في مجلد "./specfiles".

ما هو Ghidralligator؟

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

استخدامه الرئيسي هو البحث عن الثغرات في الملفات الثنائية مغلقة المصدر، وخاصة عند استهداف تطبيقات/برامج ثابتة (firmwares) للأجهزة المدمجة التي تعمل على بنى معمارية غير مألوفة.

Ghidralligator هو الخليفة لـ afl_ghidra_emu. إنه يحسّن سرعة التنفيذ بشكل كبير ويتضمن ميزات مفيدة مثل اكتشاف تلف ذاكرة الكومة (ASAN).

يمكن اكتشاف مجموعة واسعة من حالات تلف الذاكرة: عمليات القراءة/الكتابة خارج الحدود، الاستخدام بعد التحرير (use-after-free)، التحرير المزدوج (double-free)، قراءة ذاكرة غير مهيأة، انتهاكات الوصول للقراءة/الكتابة/التنفيذ...

لتشغيل Ghidralligator يجب تنفيذ الخطوات التالية:

  • إعداد ملف تكوين لتحديد تخطيط تعيين الذاكرة والحالة الأولية للبرنامج
  • تصميم الخطافات (hooks).

الوثائق

  • ملف تكوين Ghidralligator : توثيق لكتابة ملف التكوين.
  • خطافات Ghidralligator : توثيق لكتابة ملف الخطافات (user-hooks).

الدروس التعليمية

لفهم كيفية استخدام Ghidralligator، تم إعداد مثال لبرنامج قابل للاستغلال، مُجمّع على بنى معمارية مختلفة.

يمكنك تشغيل run_examples.sh لمشاهدة آليات ASAN أثناء العمل.

البداية السريعة

يأتي Ghidralligator مع عدة خيارات لسطر الأوامر:

root@kitploit:~
usage: ./ghidralligator [OPTION]

  -h 			Print this help and exit.

  -m [replay|fuzz]	Specify an emulation strategy. [REQUIRED]
				In 'replay' mode, the emulator will only launch the program once, exiting after a single loop.
				In 'fuzz' mode, this program must be launched through AFL.

  -c [FILENAME]		Specify the emulator json configuration file to load. [REQUIRED]

  -i [FILENAME]		Specify a test-case file to insert during a replay session. [OPTIONAL]

  -I 			Display info log (/!\ Slow down the emulation). [OPTIONAL]
  -D 			Display debug and info log (/!\ Slow down the emulation). [OPTIONAL]

  -t 			Store log in ./ghidraligator.log file. [OPTIONAL]


الاستخدام لمحاكاة قياسية:

root@kitploit:~
$ ./ghidralligator -m replay -c examples/x86/config.json -I -i examples/x86/input/normal_use_case.bin

gif إعادة التشغيل

الاستخدام لجلسة اختبار عشوائي (fuzzing) قياسية باستخدام AFL++:

root@kitploit:~
mkdir afl_inputs afl_outputs
echo -n "AAAAAA" > ./afl_inputs/input.bin
$ AFL_SKIP_BIN_CHECK=1 afl-fuzz -D -i ./afl_inputs -o ./afl_outputs/ -- ./ghidralligator -m fuzz -c examples/x86/config.json

gif الاختبار العشوائي

القيود

  • يمكن لـ Ghidralligator محاكاة الكود بفضل ملف .sla (ملف تعريف تعليمات Sleigh). ملفات SLA المقدمة من مجتمع Ghidra قد تكون منفذة جزئيًا. للحصول على محاكاة متسقة، قد يحتاج المستخدمون إلى إكمال تعريف بنية Sleigh ذات الصلة أو إضافة بعض الخطافات.

  • يعتمد Ghidralligator على Ghidra الذي لم يُصمم ليكون عالي الأداء في أغراض المحاكاة. وبالتالي لا يمكنه منافسة أدوات الاختبار العشوائي الكلاسيكية مثل afl_qemu على البنى المعمارية القياسية (ملفات x86 linux / windows الثنائية).

  • نظرًا لأن مشروع Ghidra في تطور مستمر، لا يُنصح بتحديث تبعيات Ghidralligator يدويًا لإصدارات Ghidra المستقبلية. تم بناء الأداة واختبارها مع مصادر مفكك الشفرة Ghidra 11.0.3. قد تتعطل مع الإصدارات المستقبلية، كما أن التوافق مع الإصدارات الأقدم من 11.0.3 غير مدعوم. هذا الأمر شفاف بالنسبة للمستخدم، حيث يتم توفير تبعيات Ghidra في هذا المستودع.

التراخيص

يتم إصدار Ghidralligator بموجب رخصة Apache الإصدار 2.0.

يتضمن كود Ghidralligator كودًا من مشروع Ghidra من قبل NationalSecurityAgency، المُصدر بموجب رخصة Apache 2.0.

يتضمن محلل ملفات تكوين Ghidralligator مكتبة C++ json بواسطة Niels Lohmann، المُصدرة بموجب رخصة MIT.

تتضمن وحدة Ghidralligator مكتبة xxHash بواسطة Yann Collet، المُصدرة بموجب رخصة BSD 2-Clause.

المؤلفون

  • Flavian Dola - Airbus (Twitter)
  • Guillaume Orlando - Airbus (Twitter)
تنزيل الأداة