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

@ -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