Commit graph

254 commits

Author SHA1 Message Date
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
vit9696
bc3193420c Fix #144 2018-10-10 23:41:53 +03:00
vit9696
126b36a672 Fix windows compilation 2018-10-10 17:25:31 +03:00
vit9696
49e8e02b77 Remove debug code added by mistake 2018-10-10 17:23:45 +03:00
vit9696
7e1e1ab61e Bugfixes for #147 2018-10-10 17:20:00 +03:00
vit9696
337da5e632 Provide scanf with unsigned for strict compliance 2018-10-08 23:42:41 +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
f666fe63db Fix compilation on Linux 2018-08-02 03:54:45 +03:00
vit9696
ee6ce579e3 Fix compilation 2018-08-02 03:51:52 +03:00
vit9696
4d50d581fa Remove Qt deps from UEFIFind and fix issues 2018-08-02 03:41:11 +03:00
vit9696
c9db871c12 Rough attempt to deglue UEFIExtract from Qt 2018-07-13 00:17:08 +03:00
vit9696
0a2f115056 Fix some warnings 2018-07-12 22:56:51 +03:00
vit9696
4f6efe5195 Add more chip IDs, thank you Google 2018-06-02 19:27:24 +03:00
vit9696
4ab4393632 Watch out for invalid variables 2018-05-08 19:33:00 +03:00
vit9696
f352fa0cab Sync tianocompress with upstream and more warning fixes 2018-05-08 19:02:25 +03:00
vit9696
9ee937a429 Include offset in FfsReport 2018-05-08 18:44:49 +03:00
vit9696
cf01543f06 Silence analyzer warnings and fix potential issues 2018-05-08 18:42:16 +03:00
vit9696
bbdfe28449 Fix and reindent LZMA 2018-05-08 18:16:28 +03:00
vit9696
d87cbe3210 Slightly more portable PRIX64 workaround 2018-05-08 10:48:04 +03:00
vit9696
afc5a44446 Fix Linux compilation 2018-05-08 03:02:07 +03:00
vit9696
e0b3049bff Initial Windows build support for NE 2018-05-08 02:48:34 +03:00
vit9696
b35193b3df Fix a compiler warning 2018-05-07 20:55:25 +03:00
vit9696
ec38091599 Improve descriptor version handling 2018-05-07 00:38:06 +03:00
vit9696
3eae2e4fdc 1.0 descriptors should go via FLASH_DESCRIPTOR_MASTER_SECTION_V2 2018-05-06 15:34:34 +03:00
vit9696
8bbf56d2f4 Fix Intel descriptor version parsing 2018-05-06 15:22:25 +03:00
vit9696
268ccb00a8 Backport TianoDecompress fix for Xcode (https://bugzilla.tianocore.org/show_bug.cgi?id=635) 2018-05-04 20:48:02 +03:00
Alex Matrosov
17267ed4b1 Update ffsparser.cpp 2018-04-29 22:41:13 -07:00
Alex Matrosov
e3ace324ee bugfix 2018-04-29 22:33:19 -07:00
Alex Matrosov
1cbd3393c8 bugfix 2018-02-25 15:33:54 -08:00
Alex Matrosov
82a89b2c03 multiple fixes 2018-01-23 00:00:03 -08:00
Alex Matrosov
8fb214c322 Update ffsparser.cpp 2017-12-10 21:39:47 -08: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
02369442a2 NE Alpha 44
+ support of MS Surface implementation of Intel Boot Guard
+ optional disabling Intel Boot Guard marking
2017-11-05 23:10:06 -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
fc579533e8 NE Alpha 42 2017-07-31 09:06:11 +03:00
Cr4sh
9b85fac61b UEFIFind and nvramparser.cpp bugfixes 2017-07-22 21:43:20 +03:00
Cr4sh
227be5480e NE Alpha 41 2017-07-08 22:31:57 +03:00
Velocet
7773e31c47 Update guids.csv
- Consolidated with https://gist.github.com/skochinsky/3b8f948bfef6f8b32c0577ac018bdaf9 from @skochinsky
- Some duplicates removed
2017-04-27 00:45:17 +02:00
Cr4sh
0f0bc32a42 NE Alpha 40 2017-02-14 09:39:16 +03:00
Cr4sh
7b18f346dd NE Alpha 39 2017-02-12 10:28:33 +03:00
Cr4sh
0e09dfe1b2 NE Alpha 38 2017-01-14 03:24:56 +03:00
Cr4sh
f410b0f969 NE Alpha 37 2016-12-23 01:34:24 +03:00
Cr4sh
0e60013311 NE Alpha 36 2016-12-04 01:36:01 +03:00
Cr4sh
4160a6a580 NE Alpha 35 2016-11-03 02:40:38 +07: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
434a350819 Fixes after GCC static analysis
- unused variable
- potential use of uninitialized variable
2016-07-18 07:08:08 +02:00
Nikolaj Schlej
03567dbe66 FIT checksum bugfix
- and small refactorings
2016-07-18 06:49:31 +02:00
Nikolaj Schlej
f90427229d Refactoring 2016-07-16 09:08:41 +02:00
Nikolaj Schlej
4745d61905 Freeing from C++11-only features 2016-07-15 23:59:29 -07:00
Nikolaj Schlej
f3a6aba4c4 Add algorithm include
- as std::count and std::reverse are used
2016-07-16 07:42:03 +02: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
59a6f298ee Move fitParser to ffsParser
- required to set fixed properly
2016-07-14 21:22:51 +02:00
Nikolaj Schlej
feb74c3299 Fixed NVAR DataOnly+Auth variables
- such variable have a new timestamp in extended header, but no hash
2016-07-14 19:28:02 +02:00
Nikolaj Schlej
72116d01c0 Incorrect Fixed=true attribute of sections fixed 2016-07-11 09:35:01 +02:00
Nikolaj Schlej
31fe6c7620 Bugfix for UD 0.1.0
- use of destroyed object due, local copy needed
2016-07-09 11:26:26 +02:00
Nikolaj Schlej
4381bc6103 Bugfix for UE 0.12.2
- some testing code leaked to UE, reverted
2016-07-09 11:18:11 +02:00
Nikolaj Schlej
589dbd5719 UT NE A30, UE 0.12.1, UD 0.1.0
- engine modifications require to make a new release of UT and UE
- UEFIDump 0.1.0 with Qt-free engine, at last
2016-07-09 10:42:49 +02:00
Nikolaj Schlej
926c65dd14 Add spaces around PRIX64 to please CLang
- UEFIDump 0.1.0 is ready for release
2016-07-09 10:08:32 +02: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
80b85cbf19 Unix compatibility for UD 0.1.0
- a few naming changes and then the release, yay
2016-07-09 08:50:34 +02:00
Nikolaj Schlej
7bae8e040c UEFIDump 0.1.0 for Windows
- Linux and OSX will be done in next commit
2016-07-09 08:31:08 +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
Nikolaj Schlej
12029c768c UModelIndex integrated
- can be used instead of QModelIndex for non-Qt builds
2016-07-05 18:19:04 +02:00
Nikolaj Schlej
71ba5fe582 UByteArray integrated
- another Qt class can be replaced for non-Qt builds
2016-07-05 17:22:03 +02:00
Nikolaj Schlej
804a55ba64 UString integration done
- now UString works for both Qt (uses QString) and non-Qt (uses modified
CBString) builds
2016-07-05 16:18:55 +02:00
Nikolaj Schlej
a2484fdb5f CBString modified and integrated
- CBString is used instead of QString, as PoC
- removed submodule
2016-06-26 10:05:45 +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
71ce2a07b2 UE 0.12.0
- added report generation
- added "none" parameter
- fixed some typos
2016-06-25 12:22:28 +02:00
Nikolaj Schlej
ee3a256206 UE 0.10.9
- added FIT table output to stdout, closes #52
2016-06-20 20:53:16 +02:00
timevortex
83869461ab correcting typo 2016-06-20 23:43:09 +10: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
cd1cc09b39 NE A27
- thanks to NVAR extended headers, item tails are back
- fixed a bug with "Extract uncompressed" producing incorrect results
for multiple sections
- fixed detection and parsing of NVRAM external defaults file
- fixed "Extract as is" on NVAR entries not including extended header
- small bugfixes and refactorings
2016-04-20 22:41:24 +02:00
Nikolaj Schlej
635605e0c9 Pleasing Clang
- just a pair of explicit int to uint32_t conversions
2016-04-18 17:05:56 +02:00
Nikolaj Schlej
9cd5022698 More Coverity FTW
- dead code was dead, now it lives again
2016-04-18 16:44:58 +02:00
Nikolaj Schlej
d87c905246 Coverity FTW
- UINT x = x = a, what have I thinking there?..
2016-04-18 16:21:15 +02:00
Nikolaj Schlej
892122b45e Qt4 compatibility
- should test Qt 4.8.6 support more often
2016-04-18 15:49:25 +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
dd0efa2410 Static analysis FTW
- a bit of leftovers for previous commit found by static analyzer
2016-04-17 01:48:07 +02:00
Nikolaj Schlej
cda0018a29 A bit of refactoring here and there
- more refactoring to go, because new NVRAM code was written in a hurry
and needs to be cleaned up
2016-04-17 01:25:51 +02:00
Nikolaj Schlej
4b34fe546d Fix Clang warning 2016-04-14 21:02:17 +02:00
Nikolaj Schlej
c0a5cd0c0f UT NE A25.1
- added support for all Phoenix SCT stuff from NVRAM volume: Intel
microcodes, CMDB block, SLIC pubkey/marker.
- added support for EVSA extended variables (bigger than 0xFFFF)
- better EVSA parsing (invalid data vars are shown now)
- FlashMap entries now have human-readable types
- various small fixes and refactorings
2016-04-14 20:36:59 +02:00
Nikolaj Schlej
1100cead24 UT NE A25
- support for Phoenix SCT FlashMap
- support for Apple Gaid stores
- UI for EVSA and FlashMap store and entries
- small fixes
2016-04-13 01:35:18 +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
ba0779b415 Removed checks for NULL before calling delete or free 2016-04-09 13:18:10 +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
1dddafd4b3 Changes to please GCC
- forgot that C++17 extensions aren’t everywhere yet
2016-04-08 13:48:13 +02:00
Nikolaj Schlej
1a6d2142b0 Support for FTW blocks
- small UI fixes for EVSA
- other minor stuff
2016-04-08 13:22:18 +02:00
Nikolaj Schlej
57e24c7465 Initial EVSA format support
- better UI and parsing upcoming
- "storage" replaced with "store" everywhere
2016-04-07 08:23:37 +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
d648ce133e Small changes to please GCC 2016-03-29 18:10:30 +02:00
Nikolaj Schlej
5557acd7d8 UT NE A23
- added UI for VSS storage operations
- changed VSS storage/vars parsing order
- solved problems with GUIDs as filenames
- Fsys, _FDC and other NVRAM formats TBD
2016-03-29 16:15:23 +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
5138a49591 Remove unneeded string conversion 2016-03-21 11:36:22 +01:00
Nikolaj Schlej
0184dc991c Small fix for ffsBuilder
-found by static analysis
2016-03-21 11:34:45 +01:00
Nikolaj Schlej
1f54d73f8c GCC/Clang support 2016-03-21 11:00:10 +01:00
Nikolaj Schlej
95e5ee2496 Fix wrong GUIDs and release build 2016-03-21 10:19:02 +01:00
Nikolaj Schlej
36c26595a0 UT NE A22
- added UI for NVAR variables
- added parsing of StdDefaults and MfgDefaults nesting variables
2016-03-21 09:54:20 +01: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
c5dfbe7924 Small fix
- corrected unneeded use of fromRawData
- removed unneeded empty string in postcode info
2016-03-08 08:36:45 +01:00
Nikolaj Schlej
867f507fac GCC/Clang compatibility
- and some menu fixes
2016-03-01 09:52:25 +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
b7ec76e091 UT NE A20
- added missing warning message for signed GUIDed sections
- solved section duplication problem introduced in A19
2016-02-09 12:00:28 +01:00
Nikolaj Schlej
645b50538a Fix clang compilation error
- Non-const lvalue reference can’t bind to temporary object. Makes
sense, but compiles by MSVC.
2016-02-02 02:21:55 +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
61a1e98403 UT NE A18
- fixed a bug in findNextVolume
- added recursive function to add offset information
- fixed and compressed attributes are now visible too
2016-01-28 00:22:01 +01:00
Nikolaj Schlej
a1253050fe UT NE A17
- nothing major, just reworks and preparations for the new rebuild code
- added try / catch bad_alloc to prevent crashes during decompression of
malformed Tiano/EFI11 compressed data
2015-12-29 23:39:54 +01:00
Nikolaj Schlej
1b1bad423e Revert changes to parseUiSectionBody
- surprisingly, this breaks too many things
2015-12-12 22:37:53 +01:00
Nikolaj Schlej
12fe8bf29c Fix a warning spotted by clang
- signed int compared to unsigned
2015-12-12 21:05:53 +01:00
Nikolaj Schlej
4c79001b12 Added valid checksum values
- valid checksums is now shown, if item checksum is invalid
2015-12-12 20:09:37 +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
5fd8edf0be Fix #38
- added a flag to use FV GUIDs as folder names even if they have
non-empty text fields. Thanks to OsxReverser for #38.
2015-11-10 18:35:16 +01:00
Nikolaj Schlej
2443560c1d Qt4 compatibility 2015-11-02 21:48:00 +01:00
Nikolaj Schlej
49190d04dd UT NE A15
- fix for #37
- hide/show FIT tab
2015-10-05 10:21:33 +02:00
Nikolaj Schlej
41e3ccf692 Corrected tail append on extraction 2015-10-01 08:53:26 +02:00
Nikolaj Schlej
2d33206d29 Corrected #34 2015-10-01 08:25:41 +02:00
Nikolaj Schlej
6d8e5976f7 UT NE A12
- added detection of VTF inside volume's non-UEFI data
- corrected ImageSize information for EFI capsule
- *.scap is added to the list of known Image file extensions
- all FIT candidates in a tree item are checked for being referenced
from the last VTF now
2015-09-19 10:08:26 +02:00
Nikolaj Schlej
9eed1e3fd4 NE alpha11
- added sanity checks during volume header parsing
- corrected various small FIT issues
- corrected bogus "unaligned volume" messages during capsule files
parsing
2015-09-13 17:32:22 +02:00
Nikolaj Schlej
f6c429f00c NE alpha10
- added FIT messages widget and related messages
- corrected small text issues
2015-09-13 16:36:49 +02:00
Nikolaj Schlej
b8317ac4f2 Port of latest descriptor handling changes from master
- added Skylake+ descriptor format support
2015-09-12 22:53:07 +02: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
48384557a5 UE 0.10.2
- solved a bug in parsing of signed GUID defined sections
2015-07-12 08:15:03 +02:00
Nikolaj Schlej
cb9ecc4b43 NE_alpha6
- solved a bug in offset calculation for Intel images inside a capsule
- fitParser code cleanup
- hopefully the last commit to this tree, time to start another branch
and rewrite the whole thing once again
2015-07-08 23:05:48 +02:00
Nikolaj Schlej
407e558b60 NE_aplha5
Added FIT detection, parsing and UI, finally
2015-07-07 15:57:41 +02:00
Nikolaj Schlej
f3d731c599 Frame for FIT support 2015-07-05 06:20:03 +02:00
Nikolaj Schlej
87bd80b72c NE_alpha4
- second pass of parsing to add physical memory addresses to all
uncompressed items in the tree
- TE image revisions can be detected now
- more builder routines, but still not ready for enabling
- PE and TE header info is back
2015-06-19 20:26:45 +02:00