Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
ghidra-firmware-utils — امتداد Ghidra لهندسة عكسية للبرامج الثابتة (Firmware) لأجهزة الكمبيوتر، يوفر أدوات تحميل (Loaders) لـ PCI option ROMs، وIntel Flash Descriptor، وcoreboot CBFS، وأحجام البرامج الثابتة UEFI، بالإضافة إلى نصوص مساعدة UEFI لاستعادة الأنواع وتحديد GUID. | Kitploit
أدوات/GitHubGitHub/al3xtjames/ghidra-firmware-utils
أمان الأنظمة المدمجةالهندسة العكسيةأمن الأجهزةأمان الأجهزة وإنترنت الأشياءتحليل الملفات الثنائيةتحليل البرامج الثابتة
GitHubal3xtjames/ghidra-firmware-utils

ghidra-firmware-utils

امتداد Ghidra لهندسة عكسية للبرامج الثابتة (Firmware) لأجهزة الكمبيوتر، يوفر أدوات تحميل (Loaders) لـ PCI option ROMs، وIntel Flash Descriptor، وcoreboot CBFS، وأحجام البرامج الثابتة UEFI، بالإضافة إلى نصوص مساعدة UEFI لاستعادة الأنواع وتحديد GUID.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
5035698منذ 26 أيامتمت المراجعة من قبل Kitploit

أدوات Ghidra للبرامج الثابتة

وحدات متنوعة لـ Ghidra للمساعدة في الهندسة العكسية للبرامج الثابتة لأجهزة الكمبيوتر. تم قبول هذا كمشروع coreboot لـ GSoC 2019.

الميزات

مُحمّل خيارات ROM لواجهة PCI

  • ينفّذ مُحمّل نظام ملفات لخيارات ROM لواجهة PCI (يتعامل مع ROMs الهجينة التي تحتوي على صور متعددة، مثل x86 القديمة + UEFI)
  • يحمّل الملفات التنفيذية UEFI من خيارات ROM لواجهة PCI (بما في ذلك الصور المضغوطة)
  • يعرّف دالة نقطة الدخول وأنواع بيانات الرأس المختلفة لخيارات ROM الخاصة بـ x86 القديمة

مُحمّل صورة البرنامج الثابت

  • ينفّذ مُحمّل نظام ملفات لصور Flash Map (FMAP) و Intel Flash Descriptor (IFD) (يعرض مناطق الفلاش)
  • ينفّذ مُحمّل نظام ملفات لصور Coreboot Filesystem (CBFS) (يعرض الملفات المضمنة ويتعامل مع الضغط)
  • ينفّذ مُحمّل نظام ملفات لأحجام البرامج الثابتة UEFI وتحليل ملفات/أقسام نظام الملفات الثابتة (FFS) المتداخلة

مُحمّل Terse Executable (TE)

  • ينفّذ مُحمّل ثنائي لملفات TE الثنائية (تُستخدم بشكل متكرر في UEFI PI)

سكربت مساعد UEFI

  • يتضمن مكتبات أنواع بيانات لأنواع UEFI الأساسية (مأخوذة من EDK2 MdePkg)
  • يصلح توقيع دالة نقطة الدخول
  • يعرّف GUIDs المعروفة في مقاطع .data/.text الخاصة بالملف الثنائي
  • يحدد ويعرّف النسخ العامة لمؤشرات جداول UEFI (gBS/gRT/gST/إلخ)

البناء والتثبيت

مطلوب JDK 21 (أو أحدث) و Ghidra 12.0 (أو أحدث).

يُستخدم نظام البناء القياسي Gradle الخاص بـ Ghidra. عيّن متغير البيئة GHIDRA_INSTALL_DIR قبل البناء، أو عيّنه كخاصية Gradle (مفيد للبناء في بيئة تطوير متكاملة IDE):

متغير البيئة

root@kitploit:~
$ export GHIDRA_INSTALL_DIR="/path/to/ghidra"
$ ./gradlew

خاصية Gradle

root@kitploit:~
echo GHIDRA_INSTALL_DIR=/path/to/ghidra > gradle.properties

[!NOTE] يجب أن يشير GHIDRA_INSTALL_DIR إلى الدليل الذي يحتوي على support/buildExtension.gradle. على سبيل المثال، يجب على مستخدمي حزمة Flathub استخدام /var/lib/flatpak/app/org.ghidra_sre.Ghidra/current/active/files/lib/ghidra.

سيتم إخراج ملف ZIP الخاص بالوحدة إلى dist/. استخدم File > Install Extensions و حدد علامة الجمع الخضراء للتصفح إلى الامتداد. أعد تشغيل Ghidra عند المطالبة.

لضمان الوظائف الصحيحة، يجب بناء المكوّن الإضافي باستخدام نفس JRE المستخدم بواسطة تثبيت Ghidra الخاص بك. إذا كان لديك عدة بيئات تشغيل Java مثبتة، حدد JRE الصحيح عن طريق تعيين متغير البيئة JAVA_HOME قبل البناء.

الاستخدام

مُحمّل خيارات ROM لواجهة PCI

أضف خيار ROM لواجهة PCI إلى مشروع Ghidra. يمكن تحميل خيارات ROM الخاصة بـ x86 القديمة مباشرة للتحليل. تأكد من أن تنسيق الملف الثنائي مضبوط على x86 PCI Option ROM، واستورد الملف الثنائي.

يجب استيراد خيارات ROM الخاصة بـ UEFI أو خيارات ROM التي تحتوي على أكثر من صورة واحدة باستخدام مُحمّل نظام الملفات. عند المطالبة بتحديد وضع الاستيراد، حدد File system. سيتم عرض الصور الموجودة داخل خيار ROM، ويمكن استيرادها للتحليل. سيتم التعامل مع صور x86 القديمة بواسطة مُحمّل x86 PCI Option ROM، وسيتم التعامل مع صور UEFI بواسطة مُحمّل PE32 (الضغط مدعوم). يمكن عرض معلومات كل صورة عن طريق تحديد Get Info في قائمة النقر بزر الماوس الأيمن.

مُحمّل صورة البرنامج الثابت

أضف صورة برنامج ثابت مدعومة إلى مشروع Ghidra. يدعم مُحمّل صورة البرنامج الثابت صور Intel التي تحتوي على Flash Descriptor، وصور coreboot التي تحتوي على تخطيط FMAP/CBFS، وأحجام البرامج الثابتة UEFI. يمكن استخدام وضع الاستيراد File system لعرض الملفات المضمنة داخل صورة البرنامج الثابت المحددة.

لاحظ أن بعض صور البرامج الثابتة UEFI قد تخزن أحجام برامج ثابتة متداخلة داخل ملفات/أقسام freeform/raw (أو أقسام FFS من نوع freeform/raw). يمكن استيراد هذه الملفات كأحجام برامج ثابتة عن طريق تحديد Open File System في قائمة النقر بزر الماوس الأيمن للملف المحدد من نوع freeform/raw. إذا لم يتم العثور على حجم برنامج ثابت متداخل، فسيتم عرض رسالة خطأ (No file system provider for...).

سكربت مساعد UEFI

يتم تضمين السكربت المساعد في دليل ghidra_scripts الخاص بالمكوّن الإضافي، والذي يجب إضافته تلقائيًا إلى قائمة أدلة السكربتات في Ghidra.

قم بتشغيل سكربت مساعد UEFI عن طريق تحديد UEFIHelper.java في نافذة Script Manager (يمكن الوصول إليها من Window -> Script Manager).

لتعديل مكتبة أنواع بيانات UEFI، قم بتعديل قالب PRF في data/gen_prf.sh حسب الحاجة وقم بإنشاء ملفات PRF جديدة. افتح ملف PRF الذي تم إنشاؤه في File -> Parse C Source. قم ببناء مكتبة أنواع البيانات المحدثة عن طريق تحديد Parse to File.... استبدل مكتبات أنواع البيانات الأصلية في data وأعد بناء المكوّن الإضافي.

المشاريع ذات الصلة

هذه بعض المشاريع المثيرة للاهتمام المتعلقة بالهندسة العكسية لـ UEFI:

  • efiXplorer - مكوّن إضافي لـ IDA لتحليل البرامج الثابتة UEFI وأتمتة الهندسة العكسية
  • Ghidra-EFI-Byte-Code-Processor - وحدة معالجة EFI Byte Code (EBC) لـ Ghidra

الترخيص

Apache 2.0، مع بعض الاستثناءات:

  • src/efidecompress/c/efidecompress.c: BSD

الاعتمادات

src/efidecompress/c/efidecompress.c هو نسخة معدلة بشكل طفيف من Decompress.c من uefi-firmware-parser (وهو نفسه مشتق من النسخة الأصلية في EDK2 BaseTools).

استخدم مُحمّل نظام ملفات IFD في src/main/java/firmware/ifd المحلل من UEFITool كمرجع.

قاعدة بيانات GUID في data/guids.csv مأخوذة من UEFITool.

تم إنشاء مكتبات أنواع بيانات UEFI في data/uefi_*.gdt باستخدام data/gen_prf.sh، والذي يعتمد جزئيًا على تعريف محلل UEFI من طلب سحب Ghidra بواسطة wrffrz. تستخدم مكتبات أنواع البيانات هذه رؤوسًا من EDK2 MdePkg.

تم استخدام GhidraVitaLoader بواسطة xerpi كمرجع لبعض أجزاء سكربت مساعد UEFI.

تنزيل الأداة