UEFITool

UEFI firmware image viewer and editor

BSD-2-CLAUSE License

Stars
4.4K
Committers
29

Bot releases are hidden (Show)

UEFITool - UEFITool / UEFIExtract / UEFIFind A68 Latest Release

Published by NikolajSchlej 12 months ago

Bugfix release with minor fixes to several regressions in A67, minor parsing improvements and typo fixes, and updates to GUID database.

UEFITool - UEFITool / UEFIExtract / UEFIFind A67

Published by NikolajSchlej over 1 year ago

Changes:

Fixes:

  • workaround for MAX_PATH limitation for UEFIExtract in Windows (requires Windows 10 1607 or newer OS version, and a registry change), thanks to @NikolajSchlej.
  • fix for CI/CD pipeline to generate proper Windows x86 builds for UEFIExtract and UEFIFind (they were secretly x64 for several past releases), thanks to @NikolajSchlej.
UEFITool - UEFITool / UEFIExtract / UEFIFind NE A66

Published by NikolajSchlej over 1 year ago

Changes:

  • New guids command for UEFIExtract and an update to default extraction modes to include generation of known GUID database (pairs of GUID/String that can be collected from the input file), thanks to @NikolajSchlej.
  • Update to Qt 6.5.0 (LTS) brough seamless cross-platform UI dark mode support, and proper handling of UI mode update, thanks to @NikolajSchlej.
  • QHexEdit2 widget replaced by QHexView5 for Hex View window. The new widget looks nicer in HiDPI and natively supports dark UI mode. Thanks to @Dax89 for creating it and @NikolajSchlej for integration work.

Fixes:

  • lots of small fixes for issues found by fuzzing, thanks to @yeggor and @NikolajSchlej
  • small update to built-in GUID database, thanks to @Tody-Guo
UEFITool - UEFITool / UEFIExtract / UEFIFind A65

Published by NikolajSchlej over 1 year ago

A bugfix release, with huge thanks to all the people that reported those new bugs.

New features:

  • Replaced AMI NVAR parser with KaitaiStruct-based one. This is another step towards "minimize manual parsing" goal stated by rewriting FIT/ACM/BootGuard parsers in KS, other NVRAM-related parsers will follow in the next updates.
  • Added fuzzing targets for libFuzzer-compatible and AFL-compatible fuzzers, which already uncovered a treasure throve of issues. Fixes are now in development, will be gradually included in the next updates.
  • Added --help (-h) and --version (-v) to UEFIExtract and UEFIFind, this makes them easier to use in scripts.

Fixes:

  • Universal macOS package for UEFITool is an app bundle again, thanks to @makigumo and @mikebeaton for reporting.
  • Unicode text search is working again, thanks to @nightgolfer and @mikebeaton for reporting.
  • UEFIExtract and UEFIFind can again be built with slightly older versions of CMake, thanks to @platomav for reporting.
  • Issues in descriptor and capsule parsing are non-fatal now, thanks to @platomav for reporting.
  • "Extract body" action did not work for some section types.
UEFITool - UEFITool / UEFIExtract / UEFIFind A64

Published by NikolajSchlej over 1 year ago

New features:

  • native UI dark mode support provided by switching to Qt6 for all release builds. Confirmed working on Windows 11, macOS 13, Ubuntu 22.04 LTS and FreeBSD 13.1 with Qt 6.4.2. Thanks to @yeggor, @vit9696 and @NikolajSchlej.
  • Windows builds split into modern win64 (using static x64 build of Qt 6.4.2) and legacy win32 (using static x86 build of Qt 5.6.3, supports legacy Windows version down to Windows XP). If you use a modern windows, please try win64 build out, as it might have uncaught 64-bit MSVC-specific bugs. Thanks to @NikolajSchlej.
  • Support for AMI v3 protected ranges hash file. Thanks to @cybojanek for the initial pull request and @NikolajSchlej for the final implementation.

Fixes:

  • Qt6 started using sse2 for real, and that uncovered a crash reported by @4e4o and @stuarthayhurst, that then got fixed by @NikolajSchlej.
  • CMake config files lacked install targets for all tools, so cmake --install did not work. Does now thanks to @NikolajSchlej.
UEFITool - UEFITool NE/UEFIExtract/UEFIFind A63

Published by NikolajSchlej over 1 year ago

New features:

  • it is now possible to paste GUIDs in raw EDK2 format into Search window as is without manual re-formatting, thanks to @mikebeaton
  • support for HiDPI displays, thanks to @NikolajSchlej
  • Zlib-compressed sections used on AMI-based boards for AMD CPUs are now supported, thanks to @NikolajSchlej

Fixes:

  • several small fixes for crashes, thanks to @yeggor, @hughsie and @NikolajSchlej
  • fix for OpenBSD builds, thanks to @klemensn

Notes:

  • had to switch to using a monospace font for the whole UI due to HiDPI requirements. If you don't like the new UI look, please open an issue.
UEFITool - UEFITool NE/UEFIExtract/UEFIFind A62

Published by NikolajSchlej about 2 years ago

This release is full of minor improvements and fixes for minor issues that laid unresolved for several years due to them being so minor.
It also adds FreeBSD to the list of supported OSes thanks to @pkubaj's effort to make the tools buildable there.

New features:

  • support for x86-64 128Kb Recovery Startup AP Data, a special 16 byte entry at a fixed address inside a Padding file in some PEI volumes on x86-64 PCs, thanks to @NikolajSchlej
  • support for AMI ROM Hole files, that need to remain at fixed base addresses inside the image, thanks to @NikolajSchlej

Bug fixes and small improvements:

  • fix for a crash during ME FPT parsing, thanks to @retpoline for reporting and @NikolajSchlej for the fix
  • fix for builds on Windows with MinGW, thanks to @llxiaoyuan for reporting and @NikolajSchlej for the fix
  • fix for builds on multiple BSD variants for multiple architectures, thanks to @pkubaj, @vit9696 and @NikolajSchlej
  • fix for C++17 compatibility, thanks to @yeggor
  • fix for CMake files to make UEFITool compatible with Qt 6.0/6.1/6.2, thanks to @NikolajSchlej
  • fix for OSes that call Qt5 qmake not just qmake, but qmake-qt5 (Fedora, FreeBSD), thanks to @ValdikSS
  • fixes to make static analysers happier, thanks to @NikolajSchlej
  • hack to make Kaitai-based parsers do one less memory copy, thanks to @vit9696 and @NikolajSchlej
  • new FlatHub app for UEFITool and the files required for it, thanks to @vulpes2
UEFITool - UEFITool NE/UEFIExtract/UEFIFind A61

Published by NikolajSchlej about 2 years ago

This huge release (over 9000 lines of new code) finally adds support for Intel BootGuard v2 structures (that @prop263 made a PR for nearly 2 years ago), reimplemented from scratch using Kaitai Struct.

Other changes included in this release:

  • improved UEFITool icon for macOS build, thanks to @vit9696
  • Intel BootGuard v1 and Intel ACM parsers got replaced by Kaitai-based ones, thanks to @NikolajSchlej
  • added support for Meson builds for UEFIExtract and UEFIFind, thanks to @hughsie
  • added support for CMake builds for UEFITool (requires Qt6), thanks to @NikolajSchlej
  • added more Lenovo-specific GUIDs to the built-in GUID database, thanks to @crass
  • added several new static analysers (PVS-Studio, CodeQL, SonarCloud) to CI/CD pipeline, fixes most of the issues spotted by them, thanks to @NikolajSchlej

Special thanks to Fiano and CSS folks, I could not cross-check the new KSY definitions without them.

UEFITool - UEFITool/UEFIExtract/UEFIFind NE A60

Published by NikolajSchlej about 2 years ago

The first release of 2022 is mostly about testing the new universal binaries for macOS (i.e. when the single binary is built natively for both x86-64 and arm64), but it also has some improvements and bugfixes:

  • added support for parsing some some HP images that use EFI_GUIDED_SECTION_LZMA_HP GUID for their LZMA-compressed sections, thanks to @yeggor
  • added support for "Extract Uncompressed..." and "Uncompressed Hex View..." actions in UEFITool, both are useful in expecting the raw uncompressed data of compressed items, and will help catch and fix some otherwise invisible issues like #178, thanks to @NikolajSchlej
  • added support for proper parsing of ME File Partition Table header version 2.1, improved parsing of the previous versions 1.0 and 2.0, thanks to @NikolajSchlej and @platomav
  • fixed CI\CD, updated its configuration to use newer runners, fixed some Coverity warnings found because it's working again, thanks to @vit9696 and @NikolajSchlej
  • built Qt 5.6.3 as universal library for macOS, and updated unixbuild.sh and CI\CD to generate unversal binaries instead of just x86-64 ones for macOS, thanks to @vit9696 and @NikolajSchlej
UEFITool - A59

Published by vit9696 about 3 years ago

  • Fixed CPLD extension area parser hang
  • Improved ME parsing with the help of MEParser
  • Added Qt6 compatibility for user builds, thanks to @vampirecat35
  • Changed prebuilt Linux binaries to require Ubuntu 20.04
  • Fixed multiple parser issues with Z590 images, thanks to @joevt
  • Added GigaDevice GD25LQ16V identifier, thanks to @realnickel
  • Added more recognised GUID file names, thanks to @assafcarlsbad
UEFITool - A58

Published by vit9696 almost 4 years ago

  • Fixes several crashes with special Boot Guard params
  • Fixes parsing of several Lenovo firmwares
UEFITool - A57

Published by vit9696 over 4 years ago

  • Fixed FIT entry engine checksum (#189)
  • Fixed infinite loop due to 0-sized volume files (#191)
  • Fixed crashes when parsing certain firmwares images
  • Fixed CPD signature verification
  • Fixed microcode detection (#194)
  • Added support to parse LZMAF68 sections (#197)
  • Allowed to use enter/return key within list widgets to navigate (#200)
  • Fixed window full screen mode reset after closing the app (#202)
  • Added parent information printing for found item (#203)
UEFITool - 0.28.0

Published by vit9696 over 4 years ago

  • Added 'Do not rebuild' support for volumes
  • Added support to parse/reconstruct LZMAF86 sections
  • Added new EIST lock patches for UEFIPatch
  • Fixed mishandling trailing newline in UEFIPatch
UEFITool - A56

Published by vit9696 almost 5 years ago

  • Add support for NVRAM_NVAR_BB_DEFAULTS_FILE_GUID (#71)
  • Add Intel ME parser
  • Add reset vector information
  • Improve ucode parser
  • Fix UEFIExtract extraction directory name
  • Fix mishandling empty microcode entries
  • Fix mishandling TE image base
  • Fix Intel legacy LZMA support
UEFITool - 0.27.0

Published by vit9696 almost 5 years ago

  • Added support for manual patches to UEFIPatch
  • Fixed issues with explicit rebuild
UEFITool - A55

Published by vit9696 over 5 years ago

  • Fixes #158, UEFITool and UEFIFind failed to lookup pattern crossing header/body boundary
  • Fixes #159, filter out more symbols in fileanems, which are prohibited by different filesystems
  • Fixes #163, brining support for parsing NVRAM_NVAR_PEI_EXTERNAL_DEFAULTS_FILE_GUID
  • Add more known file GUIDs
  • Add basic support for FMP images
UEFITool - A54

Published by vit9696 almost 6 years ago

  • Add custom LZMA dictionary size support
  • Add go to local offset functionality
  • Add ability to generate guid database from firmware
  • Add more file GUIDs
  • Add more SPI chip identifiers
  • Fix one more case with file duplicates during extraction
UEFITool - 0.26.0

Published by vit9696 almost 6 years ago

  • Implement custom LZMA dictionary size support, fixes #154
UEFITool - A53

Published by vit9696 almost 6 years ago

  • GZip unpack support
  • Fixes for #145 (for real)
UEFITool - A52

Published by vit9696 about 6 years ago

  • Added new microcode view
  • Added TXT ACM information
  • Reworked FIT/Security tab
  • Merged UEFIDump with UEFIExtract
  • Fixed navigation in macOS
  • Fixed multiple crashes and other minor bugs