Commit Graph

282 Commits

Author SHA1 Message Date
Nikolaj Schlej
71a7336730
Fix warnings spotted by GCC 2022-11-05 11:03:50 +01:00
Nikolaj Schlej
497fb2a86f Replace append with += 2022-10-23 13:49:53 +02:00
Nikolaj Schlej
c9e16cb180 Add modulus+exponent KM hashes 2022-10-23 13:37:19 +02:00
Nikolaj Schlej
50396d7291 Improve truncated image checks to preven UEFIExtract crashes 2022-10-15 09:20:55 +03:00
Richard Hughes
0429225c56 trivial: Fix the position of the colon when dumping the KM pubkey
This kinda matters when parsing the output using Python...
2022-10-11 17:15:59 +02:00
Richard Hughes
cd22c3db2b Split up the signature exponent and modulus on stdout
This makes it easier to parse from Python.
2022-10-11 09:40:34 +02: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
662e0bf9b1 Comment out unused (but still generating warnings) floating point parsing functions 2022-10-03 20:29:27 +02:00
pkubaj
799f186852 Fix build on *BSD/arm (32-bit)
Similar fix as for aarch64. I only tested FreeBSD, but since aarch64 version works everywhere, this one should also.
2022-09-29 23:15:57 +03:00
Nikolaj Schlej
6247fa5bbc Fix building with MinGW 11.2.0 on Windows, add it into CI/CD 2022-09-27 19:22:32 +02:00
Nikolaj Schlej
9bb0549ad2 Add other BSD variants once again 2022-09-25 08:22:24 +02:00
pkubaj
739de0fec8 Fix build on FreeBSD/arm64 2022-09-21 18:03:45 +03:00
Nikolaj Schlej
a9d1016a52 Add other BSD variants to the same area that fixed FreeBSD builds 2022-09-15 06:46:02 +02:00
pkubaj
4358f31242 Fix build on FreeBSD 2022-09-14 21:26:55 -07:00
Nikolaj Schlej
574754fce6 Add a missing break to types.cpp 2022-09-14 19:04:44 +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
06653d024b Provide basic non-owning memstream implementation for Kaitai parsers to use 2022-09-14 19:04:44 +02:00
yeggor
ce2291a23c Fix CMAKE_CXX_STANDARD 17 build on Windows 2022-09-14 04:05:13 +02:00
Nikolaj Schlej
c4ca232b3a Fix a version issue in ACBPv2 definition file 2022-09-10 16:08:06 +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
Richard Hughes
8600bc3ab3 meson: Use cpp_args when compiling C++ sources 2022-09-09 16:14:40 +03:00
Glenn Washburn
55d4b4fc66 Add GUIDs from Lenovo UEFI BIOS 2022-09-08 13:43:50 +03:00
Richard Hughes
1675498d4d Add UEFIFind as a meson target 2022-09-02 13:02:51 +02:00
Richard Hughes
eef00f73a4 Add Meson buildsystem
This allows UEFIExtract to build on a greater variety of targets and more
importantly allows us to build with the system-defined hardening protections
present in enterprise distributions.
2022-09-01 20:44:13 +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
fae9d6681d Update utility.cpp
- address review comment
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
963671a73e Merge zlib warning fixes by rurban
https://github.com/madler/zlib/compare/develop...rurban:FALLTHROUGH?d=1.patch
2021-10-07 19:10:36 +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
vit9696
44c5b4bc49 Fix autorename in TCG and others 2021-09-11 05:33:01 +03:00
vit9696
0fb88ab760 Fix file names in guids.csv 2021-09-11 05:30:00 +03:00
assafcarlsbad
a754fb5153
Add some more GUID definitions to guids.csv. (#242) 2021-09-09 18:55:50 +03:00
Vampire Cat
34c8ad8dcc
Updated code to support newer Qt versions (#237) 2021-04-04 12:09:23 +03:00
Nikolai Kostrigin
d1e47539fc
common/descriptor.cpp: add JEDEC ID C86015 definition as GD25LQ16V (#236)
"parseIntelImage: SPI flash with unknown JEDEC ID C86015 found in VSCC table"
message was displayed on a device equipped with GigaDevice GD25LQ16V SPI flash

Co-authored-by: Nikolai Kostrigin <nickel@altlinux.org>
2021-02-17 19:51:34 +03:00
Nikolaj Schlej
3945c9b89f Correctly calculate FPT header checksum if ROM bypass vector is present and non-zero, fixes #215 for real 2020-11-22 21:19:26 -08:00
Nikolaj Schlej
5645599c58 Fix incorrect padding construction spotted by Xcode Analyzer 2020-11-22 20:56:51 -08:00
Nikolaj Schlej
115d338a70 Display non-ASCII-named FPT partition table entry names as hex (fixing #215) 2020-11-22 18:01:44 -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
Nikolai SAOUKH
57e4d6dfa0 Update AMIC Technology spi flash info
Info taken from http://www.amictechnology.com/english/flash_spi_flash.html
2020-07-16 10:03:42 +03:00
vit9696
cd110eafa6 Provide workaround for #196 2020-04-22 19:25:36 +03:00
assafcarlsbad
a3425115b8
Add some more GUIDs to the database. (#199) 2020-03-11 21:45:56 +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
1dccf3f15a Fix CPD signature verification 2020-01-25 10:54:06 +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
2ef8d770e4 Fix memory leak introduced in the previous commit 2019-11-27 20:02:20 +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
Nikolaj Schlej
8bddbe7d1f Fix TotalSize check 2019-09-05 12:58:51 -07:00
Nikolaj Schlej
3507698136 Remove broken revision check 2019-09-05 12:42:26 -07:00
Nikolaj Schlej
64e1aa18b8 Further improve micorcode header detection 2019-09-05 12:25:47 -07:00
Nikolaj Schlej
95c838181f Improve microcode header detection, parse DevExp1 region as ME region 2019-09-04 17:07:18 -07: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
1e1d5c6e17 Add hack for broken NVRAM store sizes in Apple images 2019-08-17 14:58:08 +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
f386eda430 Add support for parsing NVRAM_NVAR_BB_DEFAULTS_FILE_GUID, closes #71 2019-04-11 19:30:30 +03:00
vit9696
be65f8ae06 Fix one more resource leak 2019-03-26 14:59:13 +03:00
vit9696
5edd5c10ee Fix potential bugs found with static analysis 2019-03-26 14:22:51 +03:00
vit9696
2cbd78fb9e Fix directory creation error in UEFIExtract default mode 2019-03-08 03:07:58 +03:00
vit9696
f34894b9fd Add support for NVRAM_NVAR_PEI_EXTERNAL_DEFAULTS_FILE_GUID, fixes #163 2019-02-10 18:38:37 +03:00
vit9696
5c98152c58 Fix analyzer warnings 2019-02-01 19:45:39 +03:00
Savva
f863caac9d Update GUID database (#161) 2019-01-29 21:15:05 +03: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
40b77a713f Fix typos 2019-01-07 23:01:04 +03:00
vit9696
d16c438069 Implement dumping GUIDs from firmware and add more to builtin database 2019-01-07 19:26:31 +03:00
vit9696
afce02430a Implement local offsets 2019-01-07 16:05:57 +03:00
vit9696
be2cdc7dfe Implement custom LZMA dictionary size for NE 2019-01-03 22:53:31 +03:00
vit9696
f074dfc5ca More SPI chips (thx 4.8.4) 2018-12-11 14:51:26 +03:00
vit9696
e1c0b08fc0 Fix analyser issues 2018-11-14 19:17:06 +03:00
vit9696
2201a9b10c Workaround dir removal on current dir on windows 2018-11-12 14:49:35 +03:00
vit9696
8932aebc02 Backport decompressor untrusted data fixes from EDK2 2018-11-12 09:25:04 +03:00
vit9696
5b26775463 Rename readMisaligned to readUnaligned 2018-11-12 09:24:55 +03:00
vit9696
4dcd6b26a3 Implement gzip unpacking, fixes #149 2018-11-11 16:33:13 +03:00