Commit Graph

165 Commits

Author SHA1 Message Date
Nikolaj Schlej
b8567d32cc Fix FfsParser issues found by fuzzing
Resolve alignment issue with guidToUstring
2023-02-26 16:27:27 -08:00
Nikolaj Schlej
2d1ebcc11b Fallback to RawArea parsing in case IntelDescriptor or Capsule parsing was unsuccesful 2023-02-18 08:28:15 -08:00
Nikolaj Schlej
ef7ceefa41 Temporary change UI style for Qt6-based Windows build of UEFITool to support dark mode 2023-02-11 20:19:32 -08:00
Nikolaj Schlej
33c25e8255 Add AMI v3 protected ranges hash file support 2023-02-05 20:30:20 -08:00
Nikolaj Schlej
c9939e23ec Fix possible unaligned access to UCS2 strings 2023-01-31 20:15:12 -08:00
Nikolaj Schlej
66e9f95dc3 Replace unneeded BOOLEAN with bool 2023-01-29 15:13:37 -08:00
Nikolaj Schlej
507f884635 Fix compressed flag not being applied to the items inside GZip and Zlib GUIDed sections 2023-01-28 21:56:01 -08:00
Nikolaj Schlej
19ab6076c4
Update ffsparser.cpp
Fix an issue with parsing CRC32 sections introduced in the previous commit
2023-01-03 01:17:41 -08:00
Nikolaj Schlej
7337f15ec9 Implement parsing for AMD-specific Zlib-compressed GUIDed section
Fix incorrect overflow check in parsing volume block map
2022-12-23 22:49:37 -08:00
Nikolaj Schlej
71a7336730
Fix warnings spotted by GCC 2022-11-05 11:03:50 +01:00
Nikolaj Schlej
50396d7291 Improve truncated image checks to preven UEFIExtract crashes 2022-10-15 09:20:55 +03:00
Nikolaj Schlej
c3cedba150 Fix another crash in checkProtectedRanges 2022-10-11 09:39:19 +02:00
Nikolaj Schlej
89a302e5d9 Calculate key manifest public key hashes that could be written into FPFs 2022-10-09 11:24:27 +02:00
Nikolaj Schlej
7e5e02b4b4 Improve detection of BPDT partition tables in raw areas, update the list of known BPDT entry types 2022-10-09 07:18:28 +02:00
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
011647aa30 Fix a possible crash of MeParser in case there are no valid FPT partition table entries 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
a9c6f347a2 Fix another issue spotted by PVS-Studio 2022-09-10 14:47:55 +02:00
Nikolaj Schlej
22d1db8c7f Fix issues spotted by PVS-Studio and SonarCloud 2022-09-10 14:20:49 +02:00
Nikolaj Schlej
75a1374c0c Fix a type issue found by CoreQL 2022-09-10 13:59:23 +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
7695927eec Fixed inconsistent use of %ll and %l format modifiers 2022-08-29 07:10:13 +02:00
Nikolaj Schlej
4006954bc1 Downcast all qtsizetype to UINT32 manually, apply consistent identation 2022-08-28 12:47:01 +02:00
Nikolaj Schlej
10e2e60183 Off with that PRI*Q bullshit 2022-08-28 12:01:43 +02:00
Nikolaj Schlej
eb3185224b More minor structure init fixes 2022-08-28 08:00:05 +02:00
Nikolaj Schlej
3aafbdd269 Fix another coverity warning about unitialized structure fields usage 2022-08-25 09:43:18 +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
eabd6a8604
Merge pull request #271 from LongSoft/PR/uncompressed_and_refactorings
Refactoring round 1
2022-08-25 07:13:54 +02:00
Nikolaj Schlej
e85fb741ee Fix new warnings from Coverity Scan 2022-08-25 06:49:10 +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
vit9696
2a083d8739 Fix cast warnings 2021-10-07 19:02:11 +03:00
vit9696
44bb6e8261 Drop meaningless const inst scalar casts 2021-10-07 18:56:25 +03:00
joevt
f9c35f77a6 Improve firmware parser and tool robustness
closes #241
2021-10-07 18:51:39 +03:00
Vampire Cat
34c8ad8dcc
Updated code to support newer Qt versions (#237) 2021-04-04 12:09:23 +03:00
Nikolaj Schlej
5645599c58 Fix incorrect padding construction spotted by Xcode Analyzer 2020-11-22 20:56:51 -08:00
vit9696
753b8ee893 Fix misparsing volumes in some Lenovo firmwares 2020-11-03 11:32:54 +03:00
vit9696
b96772190a Workaround crash with AMI addressDiff calculation
references #219
2020-09-25 18:16:10 +03:00
vit9696
cd110eafa6 Provide workaround for #196 2020-04-22 19:25:36 +03:00
vit9696
0f2ede398d Implement LZMAF86 support
references #197
2020-03-06 23:54:20 +03:00
vit9696
6fdc69415b Fix microcode detection
closes #194
2020-02-08 22:05:33 +03:00
vit9696
4d948475d8 Fix using temporary after scope in FfsParser::parseVendorHashFile 2020-01-25 01:15:18 +03:00
vit9696
bf3adbe4c6 Fix infinite loop due to 0-sized volume files
closes #191
2020-01-24 22:36:39 +03:00
serg-pushkarev
516949a6e6 Fix FIT entry engine checksum (#189) 2020-01-20 03:18:15 +03:00
vit9696
1b2ea8c276 Import legacy bugfixes found over time
- Fix mishandling empty microcode entries
- Fix mishandling TE image base
- Fix Intel legacy LZMA support
2019-11-27 19:46:16 +03:00
vit9696
f2e343d8bf Update field names in microcode struct as in EDK II 2019-09-06 23:16:26 +03:00
vit9696
967375243c Fix LoaderVersion and UpdateVersion handling in MCU 2019-09-05 23:38:53 +03:00