Here’s a handy tool for interrogating firmware volumes:  UEFITool!  It is written by Nikolaj Schlej, and is great for examing the Regions/Volumes/Sections/Files that make up a UEFI image.

From the homepage on GitHub:

UEFITool is a cross-platform C++/Qt program for parsing, extracting and modifying UEFI firmware images.  It supports parsing of full BIOS images starting with the flash descriptor or any binary files containing UEFI volumes.

I tested with version 0.21.5, available from the releases tab on GitHub.

 

Acquiring an Image

For UEFITool to begin to do its work, you must provide it a UEFI image.  This could be an image you create as a BIOS developer, or you can dump an image from a system using a ROM programmer or Intel’s Flash Programming Tool (FPT.EXE).  For example:

FPT.EXE –D <filename>.bin

will dump a system’s SPI part(s) to a binary dump file.  You can then load this into UEFITool.

 

Working with the Tool

The tool opens displaying a graphical layout of the image on the left side:

image

You can expand and collapse the various components of the image and dig deeper.  The “Information” panel on the right side will show details of what is selected in the left panel:

image

What you can do with UEFITool depends on the type of the image component you select.  Below are screenshots illustrating the options available for each type of firmware component.  Hopefully this will give you an idea of how the tool can help you.

 

Image

image

Region

image

Padding

image

Volume

image

Section

image

File

image

 

Search

There is also a great search feature that lets you search your image for a hex pattern, GUID, or text.  Examples:

image

image

image

 

Conclusion

UEFITool is free software released under the BSD License.  It is extremely useful for interrogating and manipulating the components of a UEFI BIOS image.  Download it and give it a test drive today!

Post a Comment

Be sure to select an account profile (e.g. Google, OpenID, etc.) before typing your comment!