Commit graph

314 commits

Author SHA1 Message Date
Nikolaj Schlej
936b09dbf4 1) Added special subspecifier "h" for specifier "X" (hex values print), added corresponding menu option and application setting to UEFITool.
2) Fixed QHexView misalignment in Windows and macOS.
3) Added some more analysis to raw files and sections: raw files can (or can not) contain sections, raw sections can contain NVAR storage or PE/TE.
4) Improved CPU base address detection and propagation.
5) Improved FIT recognition.
7) ME region not displayed if it is in unknown format, fixed this because we still want to operate with it.
8) Small changes to Flash Descriptor parsing to get more cases for valid "Intel image". To get rid of cases when "Intel image" is already in tree but with parse error because of which "UEFI image" appears.
9) Added parsing of individual UEFI-files (these can be trimmed from UEFI-volume), displaying it as "UEFI volume part".
10) Added possibility to view/save contents of elements "Free volume space", "Free space" and such, because these can be non-empty.
11) Added info about blocks number and block size (with preliminary and stupid validity check) to volume info.
12) Added storage in settings of the following paths: open image file, save image file, open GUIDs file.
13) Added last opened files list.
14) Added permanent opened file name string to the end of the status bar.
15) Added opened file changes tracking: if the file was modified in other program while it is opened in UEFITool, there are 3 ways to act: a) ignore changes (but mark file path displayed in the status bar with italic font); b) ask user to reopen or ignore (if ignore, mark as in a); c) auto reopen changed file in UEFITool. If changes were in some way ignored, file path displayed in the right of the status bar will be marked with italic font and then become clickable: on click request to reopen appears again.
16) Switched to offset/size instead of byte array storing in each tree item.
17) For clarity - added icons to key tree items (compressed and with contents, contents now must be in root item only).
18) For usability - added expanding tree on open image (to depth level 1) and by menu command (expand all).
2025-04-23 21:44:00 +03:00
Nikolaj Schlej
7cea8ee512 Remove outdated definition of FLASH_PARAMETERS 2025-04-14 18:08:12 +07:00
yangfl
22bb757726 Remove PATH_MAX from realpath
POSIX.1-2008 ensures realpath() give a dynamically allocated buffer if
NULL is passed, which avoids using PATH_MAX, which may be too large to
fit in stack, or even undefined on some systems.
2025-03-19 15:25:03 +07:00
Nikolaj Schlej
d61d759db2 Make sure to wrap all uses of kaitai::kstream into try-catch blocks 2025-03-16 23:37:10 +07:00
Nikolaj Schlej
7ef371957a Add initial support for Insyde H2O FlashDeviceMap rev4 2025-03-16 23:12:56 +07:00
Nikolaj Schlej
97a85f9ddc Add Microsoft LZMA section GUID 2025-03-14 07:13:06 +07:00
Nikolaj Schlej
07742a5069 Update GUID database 2025-03-13 19:30:12 +07:00
Nikolaj Schlej
a12be6bfc7 Address review comments 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
fbf6afdfc8 Expand Type column of the report to fit new FlashDeviceMap store and entry types 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
3cb5dc0165 Add SLIC pubkey and marker parsers 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
fd0faea9ea Add Phoenix CMDB parser 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
01e2e0877b Add FFS volume parser for non-AMI NVRAM areas 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
4e2a8f6bd7 Add Intel uCode parser 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
58366f48fe Add Insyde Flash Device Map parser 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
b98edf6944 Add Phoenix EVSA parser 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
f989fdfea1 Add Phoenix FlashMap parser 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
4e600eb986 Add Apple SysF/Diag parser 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
2d6eaa917f Add EDK2 FTW parser 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
ca7d4caa7a Add Insyde FDC parser 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
34904bdc5d Add KaitaiStruct parsing of Phoenix VSS2 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
489b85fd98 Rewrite VSS and VSS2 NVRAM variable parsers in KaitaiStruct 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
2661b8fe4b Remove manual NVRAM parsing, add EDK2 VSS parser written in KaitaiStruct 2025-03-13 19:27:55 +07:00
Nikolaj Schlej
7dd9014a38 Update GUID database 2025-02-21 11:21:21 +07:00
Nikolaj Schlej
369f10188c Enable building ffsparser_fuzzer during CI/CD, improve readUnaligned to silence Clang UBSAN 2025-02-14 12:00:37 +01:00
Nikolaj Schlej
c94f78a530 Add missing common/LZMA/SDK/C/7zWindows.h 2025-02-14 06:53:27 +01:00
Nikolaj Schlej
b5756f9ccb Revert old patch from common/LZMA/SDK/C/CpuArch.c 2025-02-14 06:51:07 +01:00
Nikolaj Schlej
65fb4a86b6 Update LZMA SDK to 24.09 2025-02-14 06:45:33 +01:00
Nikolaj Schlej
e66bc7d8dc Apply a small patch to common/zlib/gzguts.h to fix a build issue in macOS 2025-02-14 05:22:05 +01:00
Nikolaj Schlej
dcf21fa50a Update built-in zlib to 1.3.1 2025-02-14 05:07:30 +01:00
Nikolaj Schlej
0af36bdcd9 Fix an issue with kaitai_regenerate.sh creating backup files on modern macOS 2025-02-14 04:58:59 +01:00
Nikolaj Schlej
a824260064 Add MX77L12850F 2025-02-13 01:09:48 +01:00
Nikolaj Schlej
214b356f84 Add AMIC A25LQ64 to internal JEDEC ID database 2025-02-12 08:50:50 +01:00
Vitaly Cheptsov
0030ea9481
Fix findPattern logic when pattern is at the end of the data
references #404
2024-10-09 23:36:23 +03:00
Jeremy Brown
c5508535c1 Defined ACCESSPERMS for musl 2024-02-20 12:19:07 -08:00
Nikolaj Schlej
0a88da1410 Update guids.csv 2023-11-02 12:48:44 -07:00
Nikolaj Schlej
6f9a4c0d46 Fix off-by-one error in parsing IFWI partition table
Fixes #376
2023-11-02 12:44:09 -07:00
William Leara
166c797a20 add Micron XM25RH128C
Add support for the Micron XM25RH128C SPI flash part.  This is a 128Mb part with DevID0 = 0x43, and DevID1 = 0x18.
2023-10-24 22:15:42 -07:00
William Leara
0e11189644 fix a few misspellings 2023-10-13 21:46:53 -07:00
Nikolaj Schlej
1cba371cc2 Update guids.csv 2023-10-06 13:30:20 -07:00
Kamay Xutax
4992474e83 Fix CPD Extension offset (reverts 29915ca)
The CPD Extensions should have the header size added as an
offset instead.
2023-08-19 15:15:51 -07:00
xutaxkamay
29915ca620 Fix CPD Manifest's partition offset
The header size needs to be probably added here, maybe it was forgotten ?

This is needed in order to get the proper base address of a CPD_EXT_IFWI_PARTITION_MANIFEST structure in the image for example in that specific case.

If I don't do this, it points to a meaningless address.

Let me know if there can be any issues with this.
2023-08-18 09:11:13 -07:00
chunqing286
4a41c33596 Regenerate cpp source files with 2023-08-04 13:07:11 -07:00
chunqing286
b2a8952c71 Fix for AMI NVAR parser based on kaitai struct by modifing 1 line (line 128) for ami_nvar.ksy. 2023-08-04 13:07:11 -07:00
yeggor
036be8d3bc add additional check for BPDT store size 2023-07-18 15:59:14 -07:00
Nikolaj Schlej
a7cf9cc3e3 Add definitions for yet another AMD-specific Zlib-compressed file and section 2023-06-25 11:58:37 -07:00
Nikolaj Schlej
2b8b00d5b0 Temporary regression fix
Reverting a check added in A66, fixing #368
2023-06-23 21:12:14 -07:00
Nikolaj Schlej
b6cdc9f484 Add support for long paths in Windows 10+ 2023-06-19 18:49:53 -07:00
Nikolaj Schlej
031bd4f734 Provide separate filesystem.cpp 2023-06-19 12:59:23 -07:00
Nikolaj Schlej
91fb7cdc83 Update GUID database
https://fwupd.org/lvfs/shards/export/csv
2023-06-07 05:52:19 -07:00
Nikolaj Schlej
ce92b98527 Restore sorted state of guids.csv 2023-04-20 20:26:21 -07:00