Commit Graph

278 Commits

Author SHA1 Message Date
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
Nikolaj Schlej
6a63d1f431 UE 0.10.1
- Extract only by listed file GUIDs is now possible for UE
- Postcodes must be hexadecimal
2015-05-17 11:45:32 +02:00
Nikolaj Schlej
8f7cc0d20e NE_alpha3
- some work done on ffsBuilder, still much to do
- added more PE types
- better names for utility.h functions
2015-05-14 19:15:19 +02:00
Nikolaj Schlej
b429c74bcf GCC compatibility update
- changed paths and init sequences
2015-04-04 15:22:52 +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