Commit graph

52 commits

Author SHA1 Message Date
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
1675498d4d Add UEFIFind as a meson target 2022-09-02 13:02:51 +02:00
joevt
f9c35f77a6 Improve firmware parser and tool robustness
closes #241
2021-10-07 18:51:39 +03:00
Nikolaj Schlej
24cf452024 UE/UF: remove cmake 3.15+ property, need a different solution 2020-11-08 11:05:42 -08:00
Nikolaj Schlej
55b7a759ff UE/UF: user static CRT by default for Windows builds, take 2 2020-11-07 18:11:16 -08:00
Nikolaj Schlej
92d0a8f754 Revert "UE/UF: user static CRT by default for Windows builds"
This reverts commit d69aca6554.
2020-11-07 18:05:12 -08:00
Nikolaj Schlej
d69aca6554 UE/UF: user static CRT by default for Windows builds 2020-11-07 17:57:13 -08:00
Nikolai SAOUKH
a2d7169a82 cmake files: add EOL to last line(s) 2020-07-20 13:15:08 +03:00
vit9696
0f2ede398d Implement LZMAF86 support
references #197
2020-03-06 23:54:20 +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
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
vit9696
7e1e1ab61e Bugfixes for #147 2018-10-10 17:20:00 +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
vit9696
8f6c8ef5cc Untie guid database from Qt 2018-08-02 05:37:09 +03:00
vit9696
6982aace9b Remove UEFIDump 2018-08-02 04:12:03 +03:00
vit9696
4d50d581fa Remove Qt deps from UEFIFind and fix issues 2018-08-02 03:41:11 +03:00
vit9696
7d16c1d48d Buildfix 2018-07-13 00:31:46 +03:00
vit9696
b60a49bef3 Fix not working comparison 2018-06-03 03:42:35 +03:00
vit9696
a5b2f00f9b Make imagefile first arg of UEFIFind 2018-06-02 20:56:17 +03:00
vit9696
4f9f31ef71 Unify version scheme and fix minor issues 2018-05-22 00:59:23 +03:00
vit9696
fc2cd74755 Increment version 2018-05-08 19:35:14 +03:00
vit9696
23c4006979 Version bump 2018-05-04 21:52:25 +03:00
Alex Matrosov
e3ace324ee bugfix 2018-04-29 22:33:19 -07: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
9b85fac61b UEFIFind and nvramparser.cpp bugfixes 2017-07-22 21:43:20 +03:00
Cr4sh
0f0bc32a42 NE Alpha 40 2017-02-14 09:39:16 +03:00
Cr4sh
0e09dfe1b2 NE Alpha 38 2017-01-14 03:24:56 +03:00
Cr4sh
4160a6a580 NE Alpha 35 2016-11-03 02:40:38 +07:00
Nikolaj Schlej
0114a72fa5 Build fixes for Windows builds
- now to test in OSX and Linux
2016-07-09 10:01:41 +02:00
Nikolaj Schlej
9045fc6cc0 Merge Qt/non-Qt codebase
- added UEFIDump tool, which is now Windows-only UEFIExtract with some
limitations, made as PoC for non-Qt engine usage
- ensured that Qt classes will be used, if available
- checked build of UT and UE
- porting of UEFIFind to non-Qt engine TBD
2016-07-07 07:57:45 +02:00
Laptander
0b49227ade Add nvram source and header to .pro files 2016-04-20 21:42:30 +03: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
f729dd58b7 UE 0.10.8 / UF 0.10.6
- removed usage of QSet, QPair and Q_FOREACH
- removed dependency from QObject for FfsDumper and UEFIFind classes
2016-03-01 09:12:37 +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
d1add47500 UF 0.10.4.1
- solved a problem with left on empty QByteArray
2015-12-29 23:39:53 +01:00
Nikolaj Schlej
5497248d40 UF QT4 compatibility
- toStdString() replaced with constData() for QByteArray
- solved a problem with return codes interpreted as chars
2015-12-12 20:28:44 +01:00
Nikolaj Schlej
2b21053fca UF 0.10.4
- rebuilt with new engine version
- bumped version number
2015-12-12 20:14:45 +01:00
Nikolaj Schlej
bf6f3cb785 Another bump of version numbers
- due to #37 fix for ffsParser
2015-10-05 23:15:47 +02:00
Nikolaj Schlej
e0750a7b68 Bump version numbers
due to previous fixes for #34 and #35
2015-10-02 11:46:54 +02:00
Nikolaj Schlej
788397f60c UF 0.10.1
- added newline to the messages
- corrected a typo in quick help string
2015-09-19 07:58:58 +02:00
Nikolaj Schlej
89c54dba8d UEFIFind 0.10.0
Port of UBU helper utility to new_engine branch
2015-09-13 14:15:26 +02:00
Nikolaj Schlej
1f0a80d035 First commit of the new_engine branch
- new ffsParser is done, supports FFSv3, non-UEFI data everywhere, fixed
files, offsets for uncompressed data and many other things
- command-line utilities are removed until the end of new engine's
development
2015-03-13 07:48:53 +01:00
Nikolaj Schlej
4c290c5204 Engine 0.20.4
- solved a crash during handling of a malformed DEPEX section
2015-02-17 23:46:15 +01:00
Johannes Obermayr
0ef59f62cc Fix error: extra qualification 'UEFIFind::' on member 'guidToQString'. 2015-02-13 21:09:11 +01:00
Nikolaj Schlej
df03531ca7 Engine update 0.20.2
- Intel signed section identified as EFI_FIRMWARE_CONTENTS_SIGNED GUIDed
section
- solved a bug with no element for "Non-UEFI data inside pad-file"
message
- HP postcode section renamed to Insyde postcode (found in non-HP
images)
- various small fixes
- this is the latest release without FFSv3 support, which requires
massive refactoring round and can possibly last long
2015-02-12 20:51:23 +01:00
Nikolaj Schlej
39ab1e5f06 Update derivatives' pro files 2015-02-06 18:17:50 +01:00
Nikolaj Schlej
44a3fb63f0 Some forgotten changes
- must make sure subprojects are also compiling before commiting another
big update
2015-01-31 15:07:28 +01:00
Nikolaj Schlej
831603dbc9 Big update 0.20.0
- major refactoring round done
- added replace actions for volumes
- added better Intel signature handling
- added support for unsigned Aptio capsules
- more GUIDs added to known-GUIDs database
- more information about PE and TE sections
- shown information about item full size
- hexadecimal numbers format changed from 0xAB to ABh
- AppleCRC renamed to ZVCRC because it seems not Apple-specific feature
after all
2015-01-31 15:00:00 +01:00