Commit Graph

42 Commits

Author SHA1 Message Date
Nikolaj Schlej
acc913769b Add workaround for Lenovo large files inside FFSv2 volumes 2022-10-07 14:40:20 +02:00
Nikolaj Schlej
6e5cc3bccc Add support for AMI ROM hole files 2022-09-14 19:04:44 +02:00
Nikolaj Schlej
a4a455d0ff Add support for x86 recovery startup AP data entries in special padding files 2022-09-14 19:04:44 +02:00
Nikolaj Schlej
934ce1f3f8 Kaitai-based Intel ACM and BootGuard parsers
As the first step towards automated parsing, this change set replaces outdated BootGuard-related parsers with shiny new KaitaiStruct-based ones.
It also does the following:
- improves Intel FIT definitions by using the relevant specification
- adds sha1, sha384, sha512 and sm3 digest implementations
- updates LZMA SDK to v22.01
- moves GUIDs out of include files to prevent multiple instantiations
- enforces C++11
- adds Kaitai-based parsers for Intel FIT, BootGuard v1 and BootGuard v2 structures
- makes many small refactorings here, there and everywhere
2022-09-10 13:14:29 +02:00
Nikolaj Schlej
eb3185224b More minor structure init fixes 2022-08-28 08:00:05 +02:00
Nikolaj Schlej
74910c4658 Add support for Intel ME FPT header version 2.1 2022-08-25 08:54:34 +02:00
Nikolaj Schlej
12f40cf289 - introduce Extract Uncompressed and Uncompressed Hex View actions for compressed items
- remove unused code to support Qt 5.5 and earlier Qt versions
- remove unused section parsing code
- add a check and description for section alignment quirk (compiled out for now)
2022-08-24 22:17:51 +02:00
yeggor
d46489fabb
Add EFI_GUIDED_SECTION_LZMA_HP GUID 2022-08-24 06:01:00 +03:00
vit9696
d9af12b567 Use constant offsets instead of 1-byte arrays 2021-10-14 04:25:26 +03:00
Nikolaj Schlej
1f488862c6 Fix #246
- fixed CPLD extension area parser hang
- added some definitions for CSME types obtained from MEParser
2021-10-14 04:25:26 +03:00
joevt
f9c35f77a6 Improve firmware parser and tool robustness
closes #241
2021-10-07 18:51:39 +03:00
vit9696
0f2ede398d Implement LZMAF86 support
references #197
2020-03-06 23:54:20 +03:00
Nikolaj Schlej
90ff19692d Add support for IFWI 1.7 and 2.0 layouts, improve ME parser, fix small issues spotted by static analysis 2019-08-19 11:36:02 -07:00
vit9696
fa954394cc Remove mac image parsing as it breaks GUI navigation
Use MacEfiUnpack utility to expand the images prior to using UEFITool:
https://github.com/acidanthera/OcSupportPkg/tree/master/Utilities/MacEfiUnpack
2019-08-18 03:41:06 +03:00
vit9696
47637ef152 Add dual mac image parsing support 2019-08-17 14:03:23 +03:00
vit9696
a01d2c6003 Implement Mac Image parsing support 2019-08-17 13:31:53 +03:00
Nikolaj Schlej
2e7aa8133a Initial ME parser, improved ucode parser, reset vector info 2019-07-24 10:30:59 -07:00
vit9696
1ac6e6a4f0 Multiple improvements and bugfixes
1. Fixes #158, UEFITool and UEFIFind failed to lookup pattern crossing header/body boundary
2. Fixes #159, filter out more symbols in fileanems, which are prohibited by different filesystems
3. Add more known file GUIDs
4. Add basic support for FMP images
5. Fix unaligned read in uint24ToUint32
6. Fix compilation with latest cmake requiring directory path
2019-01-20 13:23:28 +03:00
vit9696
4dcd6b26a3 Implement gzip unpacking, fixes #149 2018-11-11 16:33:13 +03:00
vit9696
0a634ebcbd Merge recent updates but without broken builder and with minor refactoring and bugfixes 2018-10-08 12:58:12 +03:00
Alex Matrosov
63088afd87 A45
+ FFSv3 support with large files and large sections
+ proper names for Flash Descriptor v2 regions (#89)
+ better alignment calculations (#96)
+ improved NVRAM parser
+ post IBB hash support for Boot Guard
+  bugfixes
+ companion tool updated
2017-12-10 17:56:00 -08:00
Alex Matrosov
68df5a64a3 NE Alpha 43
add visual validation of Intel Boot Guard coverage
2017-10-11 22:59:23 -07:00
Cr4sh
0f0bc32a42 NE Alpha 40 2017-02-14 09:39:16 +03:00
Cr4sh
52c7a56f68 NE Alpha 34 2016-10-27 23:31:15 +07:00
Alex Matrosov
cb430456bf NE Alpha 33
- human readable JEDEC ID
- NVRAM parser separated from FFS parser
- added support for LZMAF86 sections
- solved a bug with parsing of VSS variables with invalid sizes
2016-10-09 23:05:04 -07:00
Nikolaj Schlej
fe56c5c84c UT NE A32
- improved parsing of volume's non-UEFI data
- improved detection of top-swap for TE images
- other minor fixes
2016-07-16 07:02:33 +02:00
Nikolaj Schlej
bf8632c063 LessQt, part 1
- added wrappers over Qt classes for seamless replacement if Qt is not available
- added bstrlib as submodule
- only UEFIExtract works with this changes for now, others will followa bit later
2016-06-26 05:54:21 +02:00
Nikolaj Schlej
2d932da1f3 Add support for Apple-specific section headers
- and some new PE machine types
2016-05-04 19:41:03 +02:00
Nikolaj Schlej
9c5818bb16 UT NE A26
- NVRAM parsing code refactored
- Missing entries added to NVRAM-related infos
- Various small bugfixes here and there
2016-04-18 15:10:07 +02:00
Nikolaj Schlej
d6909fe9b6 Moved '_' symbol in structure definitions to comply with C/C++ standards
Thanks to @elfring
2016-04-09 13:47:28 +02:00
Nikolaj Schlej
80a2d57f62 Removed '_' symbols in include guards
which are violating DCL51-CPP rule, closing #46
2016-04-09 12:47:19 +02:00
Nikolaj Schlej
40200bca12 Support for _FDC and Fsys NVRAM formats
- only one format remains - EVSA
- added scope to text search UI, because of NVRAM variables having texts
in headers
2016-04-05 00:47:34 +02:00
Nikolaj Schlej
95290abb94 Initial support for VSS format
- normal, auth and apple variations supported
- some UI additions and code cleanup TBD
2016-03-28 15:03:32 +02:00
Nikolaj Schlej
3cf145a3cc NVAR parsing support
- still no proper menus for data extraction
- other NVRAM formats TBD
2016-03-20 23:59:03 +01:00
Nikolaj Schlej
4a7bacb270 Add forgotten include 2016-03-01 08:24:50 +01:00
Nikolaj Schlej
2024c1898b NE A21: deQtization begins
- added FfsBuilder code and UI, but reconstruction routines for volumes,
files and sections are still not ready
- FfsOps moved to common
- QVector and QPair aren't used anymore, replaces with std::vector and
std::pair
- common classes are now independent from QObject
- next step is to replace QString with CBString from bstrlib
2016-03-01 08:20:44 +01:00
Nikolaj Schlej
4cf6b4f37b UT NE A19
Thanks to lordkag for #41:
- improved parsing of Intel flash descriptor
- improved detection of Tiano/EFI 1.1 compression type
- added 2 UEFI capsule GUIDs used by Lenovo
- solved potential crash on very low memory available
- UEFIExtract and UEFIFind update to include the latest parser changes
2016-02-02 02:08:08 +01:00
Nikolaj Schlej
8c05b4da6a UT A16
- added various size checks to prevent crashes found by fuzzing with AFL
- rewritten parsing of GUID-defined sections
2015-12-12 10:59:38 +01:00
Nikolaj Schlej
d36951da88 NE alpha8
-Fixed a bug with Lenovo GUID introduced in alpha7
2015-09-06 08:05:57 +02:00
Nikolaj Schlej
8283ee9f29 NE_alpha7
- ported cumulative changes from 0.20.8
- added "Extract body uncompressed" action for compressed and
GUID-defined sections
2015-08-31 21:34:42 +02:00
Nikolaj Schlej
407e558b60 NE_aplha5
Added FIT detection, parsing and UI, finally
2015-07-07 15:57:41 +02:00
Nikolaj Schlej
2e788a8a1a Big structure update
- files split into common and app-specific ones
- messages from parser and finder separated
- ffsEngine split into multiple classes to reduce complexity
- still no image rebuild
2015-04-02 10:04:37 +02:00