UEFI_RETool – A Tool For UEFI Firmware Reverse Engineering

A tool for UEFI firmware reverse engineering.
UEFI firmware analysis with uefi_retool.py script
Usage:
The world's most advanced processor in the desktop PC gaming segment Can deliver ultra-fast 100+ FPS performance in the world's most popular games 6 cores and 12 processing threads bundled with the quiet AMD wraith stealth cooler max temps 95°C 4 2 G... read more
(as of January 19, 2021 - More infoProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)
The world's most advanced processor in the desktop PC gaming segment Can deliver ultra-fast 100+ FPS performance in the world's most popular games 8 cores and 16 processing threads, bundled with the AMD Wraith Prism cooler with color controlled LED s... read more
(as of January 19, 2021 - More infoProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)
The world's most advanced processor in the desktop PC gaming segment Can deliver ultra-fast 100+ FPS performance in the world's most popular games 12 cores and 24 processing threads, bundled with the AMD Wraith Prism cooler with color controlled LED ... read more
(as of January 19, 2021 - More infoProduct prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on [relevant Amazon Site(s), as applicable] at the time of purchase will apply to the purchase of this product.)
- Copy
ida_plugin/uefi_analyser.py
script andida_plugin/uefi_analyser
directory to IDA plugins directory - Edit
config.json
filePE_DIR
is a directory that contains all executable images from the UEFI firmwareDUMP_DIR
is a directory that contains all components from the firmware filesystemLOGS_DIR
is a directory for logsIDA_PATH
andIDA64_PATH
are paths to IDA Pro executable files
- Run
pip install -r requirements.txt
- Run
python uefi_retool.py
command to display the help message
Commands
python uefi_retool.py
Usage: uefi_retool.py [OPTIONS] COMMAND [ARGS]...
Options:
--help Show this message and exit.
Commands:
get-images Get executable images from UEFI firmware.
get-info Analyze the entire UEFI firmware.
get-pp Get a list of proprietary protocols in the UEFI firmware.
get-images
python uefi_retool.py get-images --help
Usage: uefi_retool.py get-images [OPTIONS] FIRMWARE_PATH
Get executable images from UEFI firmware. Images are stored in "modules"
directory.
Options:
--help Show this message and exit.
Example:
python uefi_retool.py get-images test_fw/fw-tp-x1-carbon-5th.bin
get-info
python uefi_retool.py get-info --help
Usage: uefi_retool.py get-info [OPTIONS] FIRMWARE_PATH
Analyze the entire UEFI firmware. The analysis result is saved to .json
file.
Options:
-w, --workers INTEGER Number of workers (8 by default).
--help Show this message and exit.
Example:
python uefi_retool.py get-info -w 6 test_fw/fw-tp-x1-carbon-5th.bin
get-pp
python uefi_retool.py get-pp --help
Usage: uefi_retool.py get-pp [OPTIONS] FIRMWARE_PATH
Get a list of proprietary protocols in the UEFI firmware. The result is
saved to .json file.
Options:
-w, --workers INTEGER Number of workers (8 by default).
--help Show this message and exit.
Example:
python uefi_retool.py get-pp -w 6 test_fw/fw-tp-x1-carbon-5th.bin
Additional tools
tools/update_edk2_guids.py
is a script that updates protocol GUIDs list fromedk2
project
IDA plugin
IDA plugin for UEFI analysis
Analyser & Protocol explorer
Usage
- Copy
uefi_analyser
anduefi_analyser.py
to your%IDA_DIR%/plugins
directory - Open the executable UEFI image in IDA and go to
Edit
->Plugins
->UEFI analyser
(alternatively, you can use the key combinationCtrl+Alt+U
)
Example
Before analysis

After analysis

Protocol explorer window

Dependency browser & Dependency graph
Usage
- Analyse the firmware using uefi_retool.py
python uefi_retool.py get-info FIRMWARE_PATH
- Load
<LOGS_DIR>/<FIRMWARE_NAME>-all-info.json
file to IDA (File
->UEFI_RETool...
)
alternatively, you can use the key combinationCtrl+Alt+J
)
Example
You may be interested in...
Dependency browser window

Dependency graph

Similar works
- ida-efiutils
- EFISwissKnife
- ghidra-firmware-utils
Download UEFI_RETool
If you like the site, please consider joining the telegram channel or supporting us on Patreon using the button below.