Encrypted Hilink Uimage Firmware Header -
Encrypted HiLink uImage Firmware Header: Reversing and Analysis
A standard uImage consists of a followed by the actual compressed kernel (zImage) or root filesystem. This header, defined in include/image.h of U-Boot, contains: encrypted hilink uimage firmware header
Once decrypted, the header reverts to a standard UImage header with one twist: the ih_name field often contains a secondary signature or a plaintext marker like "SECURE_HILINK_V1" . defined in include/image.h of U-Boot
: Many devices verify a digital signature after decryption. The header’s ih_name may contain a HMAC or RSA signature. Without breaking that, the device will reject modified firmware. contains: Once decrypted
Based on reverse engineering of HiLink bootloaders (U-Boot modifications by Huawei):
magic = struct.unpack(">I", dec_header[0:4])[0] if magic == 0x27051956: print("Decryption successful") with open("dec_header.bin", "wb") as out: out.write(dec_header)