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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
workshop_firmware_reverse_engineering — ورشة عمل حول الهندسة العكسية للبرامج الثابتة | Kitploit
أدوات/GitHubGitHub/emproof-com/workshop_firmware_reverse_engineering
أمان الأنظمة المدمجةالتحليل الثابتالهندسة العكسيةتحليل البرمجيات الخبيثةأمان الأجهزة وإنترنت الأشياءتحليل الملفات الثنائيةالتعلم والتعليمتحليل البرامج الثابتةمختبرات وتدريب عملي

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
GitHubemproof-com/workshop_firmware_reverse_engineering

workshop_firmware_reverse_engineering

ورشة عمل حول الهندسة العكسية للبرامج الثابتة

عرض المستودع
44355منذ 10 أشهرتمت المراجعة من قبل Kitploit

ورشة عمل: الهندسة العكسية للبرمجيات الثابتة

يحتوي هذا المستودع على الشرائح ومواد عملية لورشة عمل Emproof حول الهندسة العكسية للبرمجيات الثابتة، التي قُدِّمت في ScapyCon Automotive 2025. تستهدف الورشة جمهورًا تقنيًا لديه خبرة أمنية ضئيلة، وتعلّم الأساسيات عبر مهام عملية قائمة بذاتها. تشمل المواضيع:

  • تحليل الملفات / ELF الأساسي؛
  • كسر البرامج وتوليد المفاتيح (keygenning)؛
  • فك تشفير السلاسل وفرز البرمجيات الخبيثة؛
  • فك ضغط البرمجيات الثابتة للينكس المضمّن؛
  • تحليل الأنظمة التي تعمل مباشرة على العتاد (bare-metal)؛
  • كشف التشفير؛
  • تقنيات التعتيم/مضادات التحليل وكيفية تجاوزها؛

إذا كان هذا يروق لك، فاطّلع أيضًا على سلسلة الندوات التقنية من Emproof مع تمارين إضافية وجلسات مسجّلة.

صمّم ونظّم محتوى الورشة Tim Blazytko بدعم من Simran Kathpalia.

الإعداد

لإعداد البيئة، استنسِخ المستودع:

root@kitploit:~
git clone https://github.com/emproof-com/workshop_firmware_reverse_engineering
cd workshop_firmware_reverse_engineering

بالنسبة للعديد من المهام، نحتاج إلى بيئة تنفيذ AArch64 لنظام لينكس. نوفر حاوية Docker مبنية على Kali Linux مع أدوات شائعة مثبتة مسبقًا (مثل GNU Binutils، Binwalk). يعمل ذلك على توحيد البيئة عبر لينكس وويندوز وmacOS—بغض النظر عن بنية وحدة المعالجة المركزية للنظام المضيف. لتشغيل الحاوية والدخول إلى الصدفة، نفّذ:

root@kitploit:~
./docker_run.sh

ملاحظة: قد يستغرق التشغيل الأول بعض الوقت لبناء الصورة.

ملاحظة (البنية): خدمة Docker Compose تضبط platform: "linux/arm64".
على المضيفات x86_64 (Intel macOS/Windows/Linux) سيعمل Docker Desktop على تشغيل الصورة عبر المحاكاة، لذا قد يكون البناء الأول والإقلاع أبطأ — وهذا متوقع. على مضيفات ARM64 الأصلية (Apple Silicon، خوادم ARM) يعمل بشكل أصلي وأسرع.

ملاحظة: يمكن لحاوية Docker أيضًا تشغيل ثنائيات ARMv7 (armhf). نثبّت بيئة تشغيل armhf (المحمّل الديناميكي + المكتبات) في الصورة ونسجّل معالجات binfmt لكل من aarch64 و arm عبر سكربت بدء التشغيل.

بالإضافة إلى ذلك، ثبّت الأدوات الرسومية التالية على نظامك المضيف لمهام الهندسة العكسية التفاعلية (وهي غير مشمولة في الحاوية):

  • Ghidra
  • Binary Ninja Free

كلا الأداتين متاحتان لـ Windows وLinux وmacOS.

ملاحظة: لا يدعم Binary Ninja Free بنية AArch64. لتحليل AArch64، استخدم Ghidra (أو إصدار Binary Ninja مرخّص). لذلك، تتضمن عدة مختبرات ملفًا ثنائيًا مساعدًا بتقنية ARMv7 (*.armv7) خصيصًا لـ Binary Ninja Free؛ ويمكن أيضًا تشغيله داخل الحاوية نفسها.

ترتيب المهام

كل مهمة قائمة بذاتها داخل tasks/<name>/ وتتضمن:

  • samples/ — الثنائيات (وأحيانًا المصدر) المستخدمة في التمرين
  • task.md — المهمة مع تعليمات خطوة بخطوة وتلميحات

يمكن تنفيذ المهام بشكل مستقل، لكننا نقدم ترتيبًا موصى به (مدرج أدناه) يتدرّج في الصعوبة ويقدّم تقنيات جديدة تدريجيًا. تستهدف معظم العينات بنية ARMv7 (Thumb/ARM32) أو AArch64؛ وعند الاقتضاء، توضح ملاحظات المهمة البنية والأدوات المطلوبة وأي احتياجات خاصة ببيئة التشغيل.

  • tasks/hello_world: أساسيات ملفات ELF وتحليل البيانات الوصفية؛ الخطوات الأولى في Ghidra / Binary Ninja.

  • tasks/license_check: استخراج الأسرار المضمّنة في الكود / فتح الميزات؛ تصحيح بسيط (patching) لتجاوز عمليات التحقق (كسر).

  • tasks/game: لعبة بسيطة لتخمين الأرقام؛ فهم المنطق واختراق الوضع التجريبي مقابل الوضع الكامل.

  • tasks/keygenning_1: اعكس هندسة التحقق من الترخيص واكتب مولد مفاتيح (keygen) بسيطًا لتوليد أرقام تسلسلية صالحة.

  • tasks/keygenning_2: مهمة توليد مفاتيح أكثر تعقيدًا بعض الشيء (أملاح/مفاتيح، ترميز سداسي عشر).

  • tasks/string_encryption: ملف ثنائي يحتوي سلاسل مشفّرة (شائع في البرمجيات الخبيثة)؛ تحديد روتين فك التشفير واستعادة السلاسل بشكل ثابت (static).

  • tasks/mirai: برمجية خبيثة مضمنة تستخدم روتين فك تشفير السلاسل؛ التنقل في قاعدة كود أكبر، وتحديد الإنشاءات المثيرة للاهتمام، والتعامل مع السلاسل المعتّمة.

  • tasks/embedded_linux_1: برمجية ثابتة لنظام لينكس مضمن مع نظام ملفات؛ فك الضغط والاستكشاف وكسر معلومات تسجيل الدخول إلى لينكس (بأسلوب CTF).

  • tasks/embedded_linux_2: مشابهة، لكن ابحث عن ملف ثنائي مخفي وحلّله لا يُفترض أن يكون موجودًا.

  • tasks/car_demo: تحليل برمجيات ثابتة تعمل مباشرة على العتاد (bare-metal): تحديد البنية، واللوحة، وخريطة الذاكرة، ومصنوعات سلسلة الأدوات؛ استخراج بيانات اعتماد Wi-Fi ونقاط نهاية البروتوكول.

الترخيص

ما لم يُنص على خلاف ذلك، فإن جميع مواد الورشة في هذا المستودع مرخّصة بموجب رخصة جنو العمومية العامة، الإصدار 2 (GPL-2.0). راجع LICENSE للنص الكامل.

بعض عينات من جهات خارجية / مصادر خارجية مستثناة من رخصة GPL ومقدّمة للتحليل/التعليم فقط (لا يُسمح بإعادة التوزيع). وهي:

  • tasks/mirai/samples/
  • tasks/embedded_linux_1/samples/
  • tasks/embedded_linux_2/samples/

ملاحظة: إذا تضمّن دليل فرعي ملف ترخيص أو ترويسة خاصة به، فإن ذلك الترخيص له الأسبقية على محتويات هذا الدليل الفرعي.

تنزيل الأداة
  • tasks/iot_diag: نسخة برمجيات ثابتة (bare-metal) لأداة تشخيص؛ إعادة إنشاء تخطيطات الذاكرة من ورقة البيانات، ثم العثور على كلمة المرور لفتح وضع التشخيص.

  • tasks/crypto_detection: ملف ثنائي AArch64 ينفذ عمليات تشفير بمفتاح AES مضمّن؛ تحديد استدعاء EVP وتتبّع المفتاح/IV لفك التشفير دون البرنامج.

  • tasks/license_check_anti_patching: مقاومة التصحيح عبر تجميع مجاميع فحص للكود (checksumming)؛ فهم حارس CRC وتعلّم طرق تجاوزه.

  • tasks/fibonacci_obfuscation: تطبيقات فيبوناتشي النظيفة مقابل المعتّمة (تسطيح switch، goto المحسوب، المسندات المعتمة، تعتيم العمليات الحسابية، آلة افتراضية صغيرة)؛ فهم التقنيات وتطبيعها.