Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
uefi-firmware-parser — Parse BIOS/Intel ME/UEFI 펌웨어 관련 구조(볼륨, 파일 시스템, 파일 등)를 파싱합니다. | Kitploit
도구/GitHubGitHub/theopolis/uefi-firmware-parser
Embedded Systems SecurityReverse EngineeringHardware SecurityBinary AnalysisFirmware Analysis
GitHubtheopolis/uefi-firmware-parser

uefi-firmware-parser

Parse BIOS/Intel ME/UEFI 펌웨어 관련 구조(볼륨, 파일 시스템, 파일 등)를 파싱합니다.

저장소 보기
91918743개월 전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, Intel ME 및 기타 형식을 위한 파싱 모듈도 포함됩니다. 파싱 튜토리얼을 위해 예제 스크립트를 사용하세요.

설치

이 모듈은 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()는 계층을 탐색하고 각 항목을 파일에 씁니다.

스크립트

Python 스크립트 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 옵션이 유형을 식별하지 못하거나 unknown이라고 표시하는 경우 -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 지원

Snare의 플러그인을 사용하여 IDA Python으로 가져올 추가 GUID 레이블을 생성하는 스크립트가 포함되어 있습니다. -g LABEL을 사용하면 스크립트가 Python 사전 형식의 출력을 생성합니다. 이 프로젝트는 인기 있는 벤더 GUID를 자동으로 최신 상태로 유지하려고 노력할 것입니다.

::

$ 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
도구 다운로드