AFAIK, there are 4 libraries/codebases to parse UEFI binaries. Two in Python, one in C++, and the latest one in Go:
1) CHIPSEC, written in Python, available as a library and an app:
https://github.com/chipsec/chipsec
2) UEFI Firmware Parser, written in Python, available as a library and an app:
https://github.com/theopolis/uefi-firmware-parser
3) UEFITool, written in C++ (the New Engine branch of the code does not rely on Qt for the parsing engine):
https://github.com/LongSoft/UEFITool/tree/new_engine
4) and a new one, written in Go, part of the LinuxBoot toolchain:
https://github.com/linuxboot/fiano
Thanks to Nikolaj Schlej, author of UEFITools’ parser, for pointing out that Fiano has a new parser. I got the chance to meet Nikolaj at BSidesPDX the other day. 🙂
Am I missing a library? Leave a Comment on this post. Thanks!
