Skip to content

ReverseEngDotDev/dump_hbcifs

Repository files navigation

dump_hbcifs

Based on : https://github.com/askac/dumpifs , but modified to support IFS, ImageFS and HBCIFS (Harmon Becker Compressed IFS) files.

dump_hbcifs will loop through the firmware file looking for supported header types, and if found will process the sub-section. At the end of the sub-section, it will continue to process the firmware file until it reaches EOF.

This process is helpful for multi-section firmware files used in QNX vehicle firmware files, which store the pre-boot, boot, and root separately. If the flag to extract files (-x) is passed to the program along with a directory (-d DIR), it will extract all files across all sections to the same DIR.

Dependencies

CMake links against LZO, UCL and OpenSSL (for MD5). If you install this on a typical user workstation, you will need the "-devel" package.

dump_hbcifs help script

Examples: "./dump_hbcifs FILENAME.bin" <-- List the files in FILENAME.bin "./dump_hbcifs FILENAME.bin -d DIR -x" <-- Extract all files in FILENAME.bin and put them in directory DIR [-mvxbzh -u FILE] [-f FILE] image_file_system_file [-d DIR] -b Extract to basenames of files -u FILE Save a copy of the uncompressed image as FILE -v Verbose -x Extract files -m Display MD5 Checksum -f FILE Extract named FILE -d DIR Extract files to directory DIR -z *** NOT RECOMMENDED *** Disable the zero check while searching for the startup header. This option should be avoided as it makes the search for the startup header less reliable. -h Display this help message 

Example on a Vehicle QNX Firmware File

[Lines have been removed with "..." to shorten output unnecessary for understanding]

./dump_hbcifs 9283251A.0pb -d 9283251A/ -x Dump QNX IFS, ImageFS, and HBCIFS ********** Process IFS at: 180004 Image startup_size: 53512 (0xd108) Image stored_size: 5894240 (0x59f060) Compressed size: 5840724 (0x591f54) LZO Decompress @0x18d10c LZO Decompress rd=35312, wr=65536 @ 0x18d10c ... LZO Decompress rd=3147, wr=65536 @ 0x71d6ba LZO Decompress rd=3413, wr=13904 @ 0x71e307 Decompressed 5840314 bytes-> 13252176 bytes usr/share/wave/PDCBeep.wav ... size 3604 etc/layermanager.cfg ... size 109 ... etc/termcap ... size 6749 etc/config/persistTraceCicMidNavRoot.bin ... size 5926 Image startup_size: 53512 (0xd108) Image stored_size: 5894240 (0x59f060) Compressed size: 5840724 (0x591f54) ********** Continue search at: 71f064 ********** Process HBCIFS at: 740004 LZO Decompress @0x740044 LZO Decompress rd=33587046, wr=66207872 @ 0x740044 Decompressed 33587046 bytes-> 66207872 bytes usr/mme/db/mme_connect.sql ... size 856 usr/bin/inetd ... size 45056 ... usr/lib/terminfo/v/vt52 ... size 905 ********** Continue search at: 2747faa Nothing left to extract from 9283251A.0pb 

About

Dump QNX IFS, ImageFS, and HBCIFS

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors