diff --git a/AMI_UCP_Extract.py b/AMI_UCP_Extract.py index 41c38cf..496cbdd 100644 --- a/AMI_UCP_Extract.py +++ b/AMI_UCP_Extract.py @@ -7,7 +7,7 @@ AMI UCP Update Extractor Copyright (C) 2021-2022 Plato Mavropoulos """ -TITLE = 'AMI UCP Update Extractor v2.0_a14' +TITLE = 'AMI UCP Update Extractor v2.0_a15' import os import re @@ -163,13 +163,13 @@ def chk16_validate(data, tag, padd=0): def is_ami_ucp(in_file): buffer = file_to_bytes(in_file) - return bool(get_ami_ucp(buffer)[0]) + return bool(get_ami_ucp(buffer)[0] != None) # Get all input file AMI UCP patterns def get_ami_ucp(buffer): uaf_len_max = 0x0 # Length of largest detected @UAF|@HPU - uaf_hdr_off = 0x0 # Offset of largest detected @UAF|@HPU - uaf_buf_bin = b'' # Buffer of largest detected @UAF|@HPU + uaf_hdr_off = None # Offset of largest detected @UAF|@HPU + uaf_buf_bin = None # Buffer of largest detected @UAF|@HPU uaf_buf_tag = '@UAF' # Tag of largest detected @UAF|@HPU for uaf in PAT_AMI_UCP.finditer(buffer): @@ -419,7 +419,7 @@ def uaf_extract(buffer, extract_path, mod_info, padding=0, is_checksum=False, na nested_uaf_off,nested_uaf_bin,nested_uaf_tag = get_ami_ucp(uaf_data_raw) # Parse Nested AMI UCP Structure - if nested_uaf_off: + if nested_uaf_off != None: uaf_dir = os.path.join(extract_path, safe_name(f'{uaf_tag}_nested-UCP')) # Generate extraction directory ucp_extract(nested_uaf_bin, uaf_dir, nested_uaf_tag, padding + 4, is_checksum) # Call recursively @@ -512,7 +512,7 @@ if __name__ == '__main__': # Get best AMI UCP Pattern match based on @UAF|@HPU Size main_uaf_off,main_uaf_bin,main_uaf_tag = get_ami_ucp(input_buffer) - if not main_uaf_off: + if main_uaf_off == None: printer('Error: This is not an AMI UCP Update executable!', padding) continue # Next input file diff --git a/Phoenix_TDK_Extract.py b/Phoenix_TDK_Extract.py index 2d93793..d2edffd 100644 --- a/Phoenix_TDK_Extract.py +++ b/Phoenix_TDK_Extract.py @@ -7,7 +7,7 @@ Phoenix TDK Packer Extractor Copyright (C) 2021-2022 Plato Mavropoulos """ -TITLE = 'Phoenix TDK Packer Extractor v2.0_a6' +TITLE = 'Phoenix TDK Packer Extractor v2.0_a7' import os import sys @@ -149,7 +149,7 @@ def get_phoenix_tdk(in_buffer): def is_phoenix_tdk(in_file): buffer = file_to_bytes(in_file) - return bool(get_phoenix_tdk(buffer)[1]) + return bool(get_phoenix_tdk(buffer)[1] != None) # Parse & Extract Phoenix Tools Development Kit (TDK) Packer def phoenix_tdk_extract(input_buffer, output_path, pack_off, base_off=0, padding=0): @@ -253,7 +253,7 @@ if __name__ == '__main__': tdk_base_off,tdk_pack_off = get_phoenix_tdk(input_buffer) # Check if Phoenix TDK Packer pattern was found on executable - if not tdk_pack_off: + if tdk_pack_off == None: printer('Error: This is not a Phoenix TDK Packer executable!', padding) continue # Next input file diff --git a/Portwell_EFI_Extract.py b/Portwell_EFI_Extract.py index 4efac6f..fec6404 100644 --- a/Portwell_EFI_Extract.py +++ b/Portwell_EFI_Extract.py @@ -7,7 +7,7 @@ Portwell EFI Update Extractor Copyright (C) 2021-2022 Plato Mavropoulos """ -TITLE = 'Portwell EFI Update Extractor v2.0_a8' +TITLE = 'Portwell EFI Update Extractor v2.0_a9' import os import sys @@ -40,7 +40,7 @@ def is_portwell_efi(in_file): is_mz = PAT_MICROSOFT_MZ.search(in_buffer[:0x2]) # EFI images start with PE Header MZ is_uu = PAT_PORTWELL_EFI.search(pe_buffer[:0x4]) # Portwell EFI files start with - return is_mz and is_uu + return bool(is_mz and is_uu) # Get PE of Portwell EFI executable def get_portwell_pe(in_buffer): diff --git a/README.md b/README.md index 14ea101..a80e2f8 100644 --- a/README.md +++ b/README.md @@ -3,8 +3,6 @@ [BIOS Utilities News Feed](https://twitter.com/platomaniac) -BIOS Utilities Donation via Paypal or Debit/Credit Card - * [**AMI BIOS Guard Extractor**](#ami-bios-guard-extractor) * [**AMI UCP Update Extractor**](#ami-ucp-update-extractor) * [**Dell PFS Update Extractor**](#dell-pfs-update-extractor) @@ -100,7 +98,7 @@ Should work at all Windows, Linux or macOS operating systems which have Python 3 To run the utility, you must have the following 3rd party tools at the "external" project directory: * [TianoCompress](https://github.com/tianocore/edk2/tree/master/BaseTools/Source/C/TianoCompress/) (e.g. [TianoCompress.exe for Windows](https://github.com/tianocore/edk2-BaseTools-win32/) or TianoCompress for Linux) -* [7-Zip Console](https://www.7-zip.org/) (i.e. 7z.exe for Windows or 7zz|7zzs for Linux) +* [7-Zip Console](https://www.7-zip.org/) (i.e. 7z.exe for Windows or 7zzs for Linux) Optionally, to decompile the AMI UCP \> AMI PFAT \> Intel BIOS Guard Scripts (when applicable), you must have the following 3rd party utility at the "external" project directory: @@ -364,7 +362,7 @@ PyInstaller can build/freeze/compile the utility at all three supported platform 3. Build/Freeze/Compile: -> pyinstaller --noupx --onefile \\/Phoenix_TDK_Extract.py +> pyinstaller --noupx --onefile \\/VAIO_Package_Extract.py At dist folder you should find the final utility executable @@ -374,7 +372,4 @@ Some Anti-Virus software may claim that the built/frozen/compiled executable con #### **Pictures** -![]() - -###### _Donate Button Card Image: [Credit and Loan Pack](https://flaticon.com/free-icon/credit-card_3898076) by **Freepik** under Flaticon license_ -###### _Donate Button Paypal Image: [Credit Cards Pack](https://flaticon.com/free-icon/paypal_349278) by **Freepik** under Flaticon license_ \ No newline at end of file +![]() \ No newline at end of file