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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
uefi-firmware-parser — تحليل الهياكل المتعلقة ببرامج BIOS/Intel ME/UEFI الثابتة: وحدات التخزين، أنظمة الملفات، الملفات، إلخ | Kitploit
أدوات/GitHubGitHub/theopolis/uefi-firmware-parser
أمان الأنظمة المدمجةالهندسة العكسيةأمن الأجهزةتحليل الملفات الثنائيةتحليل البرامج الثابتة
GitHubtheopolis/uefi-firmware-parser

uefi-firmware-parser

تحليل الهياكل المتعلقة ببرامج BIOS/Intel ME/UEFI الثابتة: وحدات التخزين، أنظمة الملفات، الملفات، إلخ

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

الأكثر شعبية

عرض الكل →

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

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

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

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

محلل البرامج الثابتة UEFI

.. image:: https://travis-ci.org/theopolis/uefi-firmware-parser.svg?branch=master :target: https://travis-ci.org/theopolis/uefi-firmware-parser

محلل البرامج الثابتة UEFI هو وحدة بسيطة ومجموعة من البرامج النصية لتحليل واستخراج وإعادة إنشاء مجلدات البرامج الثابتة UEFI. يتضمن ذلك وحدات تحليل BIOS و OptionROM و IntelME وتنسيقات أخرى أيضًا. يرجى استخدام البرامج النصية الأمثلة للحصول على دروس تعليمية حول التحليل.

التثبيت

هذه الوحدة متاحة عبر PyPi باسم uefi_firmware <https://pypi.python.org/pypi/uefi_firmware>_

::

$ sudo pip install uefi_firmware

لتثبيتها من Github، قم بسحب هذا المستودع واستخدم:

::

$ sudo python ./setup.py install

المتطلبات

  • رؤوس تطوير Python، موجودة عادةً في حزمة python-dev.
  • ستعمل ميزات الضغط/فك الضغط باستخدام رؤوس Python و gcc.

الاستخدام

أبسط طريقة لاستخدام الوحدة لاكتشاف أو تحليل البرامج الثابتة هي من خلال فئة AutoParser.

::

import uefi_firmware with open('/path/to/firmware.rom', 'r') as fh: file_content = fh.read() parser = uefi_firmware.AutoParser(file_content) if parser.type() != 'unknown': firmware = parser.parse() firmware.showinfo()

هناك عدة فئات داخل حزم uefi و pfs و me و flash تقبل محتويات الملف في المنشئ. في جميع الحالات، يتم تنفيذ طرق مجردة:

  • process() تقوم بأعمال التحليل وتعيد True أو False
  • showinfo() تطبع تسلسلاً هرمياً للمعلومات حول الهيكل
  • dump() تجتاز التسلسل الهرمي وتكتب كل عنصر إلى ملف

البرامج النصية

يتم تثبيت برنامج نصي بايثون باسم uefi-firmware-parser

::

$ uefi-firmware-parser -h usage: uefi-firmware-parser [-h] [-b] [--superbrute] [-q] [-o OUTPUT] [-O] [-c] [-e] [-g GENERATE] [--test] file [file ...]

Parse, and optionally output, details and data on UEFI-related firmware.

positional arguments: file The file(s) to work on

optional arguments: -h, --help show this help message and exit -b, --brute The input is a blob and may contain FV headers. --superbrute The input is a blob and may contain any sort of firmware object -q, --quiet Do not show info. -o OUTPUT, --output OUTPUT Dump firmware objects to this folder. -O, --outputfolder Dump firmware objects to a folder based on filename ${FILENAME}_output/ -c, --echo Echo the filename before parsing or extracting. -e, --extract Extract all files/sections/volumes. -g GENERATE, --generate GENERATE Generate a FDF, implies extraction (volumes only) --test Test file parsing, output name/success.

لاختبار ملف أو مجلد من الملفات:

::

$ uefi-firmware-parser --test ~/firmware/* ~/firmware/970E32_1.40: UEFIFirmwareVolume ~/firmware/CO5975P.BIO: EFICapsule ~/firmware/me-03.obj: IntelME ~/firmware/O990-A03.exe: None ~/firmware/O990-A03.exe.hdr: DellPFS

إذا كنت بحاجة لتحليل واستخراج عدد كبير من ملفات البرامج الثابتة، تحقق من الخيار -O لإنشاء مجلد إخراج تلقائياً لكل ملف. إذا كنت تقوم بالتحليل والبحث عن المكونات الداخلية في شل، فسيقوم الخيار --echo بطباعة اسم ملف الإدخال قبل التحليل.

سيتحقق مدقق نوع البرامج الثابتة من أفضل طريقة لتحليل الملف. إذا فشل الخيار --test في تحديد النوع، أو أطلق عليه غير معروف، حاول استخدام الخيار -b أو --superbrute. يقوم الأخير بإجراء مدقق نوع بايت ببايت. ::

$ uefi-firmware-parser --test ~/firmware/970E32_1.40 ~/firmware/970E32_1.40: unknown $ uefi-firmware-parser --superbrute ~/firmware/970E32_1.40 [...]

الميزات

  • تحليل مجلدات البرامج الثابتة UEFI، الكبسولات، أنظمة الملفات، الملفات، الأقسام
  • واصفات فلاش Intel PCH
  • تحليل وحدات Intel ME (ME, TXE, إلخ)
  • تحليل تحديثات Dell PFS (HDR)
  • ضغط/فك ضغط Tiano/EFI و LZMA الأصلي (7z)
  • عرض التسلسل الهرمي الكامل لكائن مجلد البرامج الثابتة UEFI
  • إعادة إنشاء واصف البرامج الثابتة باستخدام المجلدات المدخلة التي تم تحليلها
  • حقن قسم ملف البرامج الثابتة

حقن GUID

يمكن إجراء الحقن أو استبدال GUID (لا إضافة/طرح بعد) على الأقسام داخل ملف البرامج الثابتة UEFI، أو على ملفات البرامج الثابتة UEFI داخل نظام ملفات البرامج الثابتة.

::

$ python ./scripts/fv_injector.py -h usage: fv_injector.py [-h] [-c] [-p] [-f] [--guid GUID] --injection INJECTION [-o OUTPUT] file

Search a file for UEFI firmware volumes, parse and output.

positional arguments: file The file to work on

optional arguments: -h, --help show this help message and exit -c, --capsule The input file is a firmware capsule. -p, --pfs The input file is a Dell PFS. -f, --ff Inject payload into firmware file. --guid GUID GUID to replace (inject). --injection INJECTION Pre-generated EFI file to inject. -o OUTPUT, --output OUTPUT Name of the output file.

ملاحظة: عند الحقن في ملف برامج ثابتة، سيُطلب من المستخدم اختيار القسم المراد استبداله. في الوقت الحالي، هذا غير قابل للبرمجة النصية.

دعم IDA Python

يوجد برنامج نصي مضمن لإنشاء تسميات GUID إضافية لاستيرادها إلى IDA Python باستخدام إضافات Snare. باستخدام -g LABEL، سينشئ البرنامج النصي مخرجات بتنسيق قاموس بايثون. سيحاول هذا المشروع البقاء محدثاً مع GUIDs المشهورة للبائعين تلقائياً.

::

$ python ./scripts/uefi_guids.py -h usage: uefi_guids.py [-h] [-c] [-b] [-d] [-g GENERATE] [-u] file

Output GUIDs for files, optionally write GUID structure file.

positional arguments: file The file to work on

optional arguments: -h, --help show this help message and exit -c, --capsule The input file is a firmware capsule, do not search. -b, --brute The input file is a blob, search for firmware volume headers. -d, --flash The input file is a flash descriptor. -g GENERATE, --generate GENERATE Generate a behemoth-style GUID output. -u, --unknowns When generating also print unknowns.

البائعون المدعومون

تم اختبار هذه الوحدة على تحديثات BIOS/UEFI/البرامج الثابتة من البائعين التاليين. ليس كل تحديث لكل منتج سيتحلل، قد يتطلب البعض فك ضغط مسبق أو استخراج من آلية تحديث التوزيع (عادةً PE).

  • ASRock
  • Dell
  • Gigabyte
  • Intel
  • Lenovo
  • HP
  • MSI
  • VMware
  • Apple
  • Qualcomm
تنزيل الأداة