BIOSUtilities v25.04.02

Improved UAF module detection at AMI UCP Extract
Fixed crashes at Dell PFS and Award BIOS Extract
Upgraded dependency "dissect.util" to 3.20
This commit is contained in:
Plato Mavropoulos 2025-04-03 00:14:35 +03:00
parent 40553b3244
commit a0e0ae7557
9 changed files with 21 additions and 12 deletions

View file

@ -1,3 +1,9 @@
25.04.02
Improved UAF module detection at AMI UCP Extract
Fixed crashes at Dell PFS and Award BIOS Extract
Upgraded dependency "dissect.util" to 3.20
25.02.23
Fixed AMI PFAT Extract file naming of "ALL" and "OOB"

View file

@ -26,7 +26,7 @@ There are two main types of requirements, depending on the utility: "Python Pack
#### Python Packages
* [pefile](https://pypi.org/project/pefile/2023.2.7/)
* [dissect.util](https://pypi.org/project/dissect.util/3.19/)
* [dissect.util](https://pypi.org/project/dissect.util/3.20/)
Python packages can be installed via Pypi (e.g. pip)
@ -37,7 +37,7 @@ python -m pip install --upgrade -r requirements.txt
or
``` bash
python -m pip install pefile==2023.2.7 dissect.util==3.19
python -m pip install pefile==2023.2.7 dissect.util==3.20
```
#### External Executables / Scripts

View file

@ -5,4 +5,4 @@
Copyright (C) 2018-2025 Plato Mavropoulos
"""
__version__ = '25.02.23'
__version__ = '25.04.02'

View file

@ -4,7 +4,7 @@
"""
AMI UCP Extract
AMI UCP Update Extractor
Copyright (C) 2021-2024 Plato Mavropoulos
Copyright (C) 2021-2025 Plato Mavropoulos
"""
import contextlib
@ -341,6 +341,9 @@ class AmiUcpExtract(BIOSUtility):
uaf_mod_len: int = uaf_hdr.ModuleSize
if uaf_mod_len < 0x400:
continue
uaf_mod_dat: bytes = uaf_mod_buf[:uaf_mod_len]
if uaf_mod_len != len(uaf_mod_dat):

View file

@ -4,7 +4,7 @@
"""
Award BIOS Extract
Award BIOS Module Extractor
Copyright (C) 2018-2024 Plato Mavropoulos
Copyright (C) 2018-2025 Plato Mavropoulos
"""
import os
@ -52,7 +52,7 @@ class AwardBiosExtract(BIOSUtility):
continue
if len(mod_bin) >= 0x16:
if len(mod_bin) > 0x16:
tag_txt: str = safe_name(in_name=mod_bin[0x16:0x16 + mod_bin[0x15]].decode('utf-8', 'ignore').strip())
else:
tag_txt = f'{mod_bgn:X}_{mod_end:X}'

View file

@ -4,7 +4,7 @@
"""
Dell PFS Extract
Dell PFS Update Extractor
Copyright (C) 2018-2024 Plato Mavropoulos
Copyright (C) 2018-2025 Plato Mavropoulos
"""
import contextlib
@ -431,7 +431,7 @@ class DellPfsExtract(BIOSUtility):
header_data: bytes = zlib_data[header_start:compressed_start]
# Check if the PFS ZLIB section header Checksum XOR 8 is valid
if checksum_8_xor(data=header_data[:0xF]) != header_data[0xF]:
if len(header_data) > 0xF and checksum_8_xor(data=header_data[:0xF]) != header_data[0xF]:
printer(message='Error: Invalid Dell PFS ZLIB section Header Checksum!', padding=padding)
is_zlib_error = True
@ -461,7 +461,7 @@ class DellPfsExtract(BIOSUtility):
is_zlib_error = True
# Check if the PFS ZLIB section footer Checksum XOR 8 is valid
if checksum_8_xor(data=footer_data[:0xF]) != footer_data[0xF]:
if len(footer_data) > 0xF and checksum_8_xor(data=footer_data[:0xF]) != footer_data[0xF]:
printer(message='Error: Invalid Dell PFS ZLIB section Footer Checksum!', padding=padding)
is_zlib_error = True

View file

@ -34,7 +34,7 @@ classifiers = [
]
[project.optional-dependencies]
lznt1 = ["dissect.util == 3.19"]
lznt1 = ["dissect.util == 3.20"]
pefile = ["pefile == 2023.2.7"]
[project.urls]

View file

@ -1,2 +1,2 @@
mypy==1.15.0
pylint==3.3.4
pylint==3.3.6

View file

@ -1,2 +1,2 @@
dissect.util==3.19
dissect.util==3.20
pefile==2023.2.7