Need Help Extracting Disney Bolt PS3 ONE.HOG Archive [Solved]

Extraction and unpacking of game archives and compression, encryption, obfuscation, decoding of unknown files
lordchrome
Posts: 25
Joined: Wed Oct 21, 2020 9:24 am

Need Help Extracting Disney Bolt PS3 ONE.HOG Archive [Solved]

Post by lordchrome »

The file is able to be extracted using game extractor by selecting descent archive but doesn't give me the name or format of the file. Tried using hex editor for the 4 extracted files but no luck. Avalanche Software also used the format for Chicken Little and Tak 3: The Great Juju Challenge if you need examine other files to understand what the archive might be. Would really appreciate it if someone can figure out how to extract this.


Here is the file https://mega.nz/file/3hE1nAbR#7oDeK5D-z ... VJ7Vl7mInA
Last edited by lordchrome on Mon Jun 14, 2021 6:04 am, edited 1 time in total.
lordchrome
Posts: 25
Joined: Wed Oct 21, 2020 9:24 am

Re: Need Help Extracting Disney Bolt PS3 ONE.HOG Archive

Post by lordchrome »




Used all the scripts you offered and none of them worked and rugrats royal ransom couldn't do it's script all the way. Can you send the others? Also I should have mentioned that the hex for this file is 01 00 01 00.
Shokoniraya
Posts: 416
Joined: Sat Sep 15, 2018 5:22 am

Re: Need Help Extracting Disney Bolt PS3 ONE.HOG Archive

Post by Shokoniraya »

25 to life \ Bolt bms script
there is a encrypted file in 25 to life game (i attached the file in this comment)

use -w -o in command line (for QuickBMS)

Code: Select all

get SIGNATURE short
get VERSION_FLAG short
get INFO_TABLE_OFFSET long
if VERSION_FLAG > 1
get ENCRYPTION_BLOCK long
if ENCRYPTION_BLOCK != 0
print "archive is encrypted!"
cleanexit
endif
if VERSION_FLAG > 2
print "version %VERSION_FLAG% is not supported! only version 1 & 2"
cleanexit
endif
endif
get UNKNOW_1 long #lable?
get FILES_COUNT long
get INFO_TABLE_SIZE long
get INFO_TABLE_LABLE long

goto INFO_TABLE_OFFSET
for i = 0 < FILES_COUNT
get FILE_NAME_OFFSET long
savepos CHECKPOINT
goto FILE_NAME_OFFSET
get FILE_NAME string
goto CHECKPOINT

get FILE_OFFSET long
if VERSION_FLAG = 1
get NULL long
endif

savepos RAW_FILE_SIZE_LOCATION
get RAW_FILE_SIZE long
if VERSION_FLAG = 1
get NULL long
get COMPRESSED_FILE_SIZE long
get NULL long
get DECOMPRESSED_FILE_SIZE long
get NULL long
get UNKNOW_2 long
endif

get FILE_ID long
if VERSION_FLAG = 1
get UNKNOW_3 long
get UNKNOW_4 long
endif

if COMPRESSED_FILE_SIZE = DECOMPRESSED_FILE_SIZE
comtype COPY
else
comtype zlib
endif

if VERSION_FLAG = 1
if COMPRESSED_FILE_SIZE = DECOMPRESSED_FILE_SIZE
clog FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE DECOMPRESSED_FILE_SIZE
elif COMPRESSED_FILE_SIZE = 0 & DECOMPRESSED_FILE_SIZE != 0
log FILE_NAME FILE_OFFSET DECOMPRESSED_FILE_SIZE
elif DECOMPRESSED_FILE_SIZE = 0 & COMPRESSED_FILE_SIZE != 0
log FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE
else
clog FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE DECOMPRESSED_FILE_SIZE
endif

savepos CHECKPOIT
goto RAW_FILE_SIZE_LOCATION
put DECOMPRESSED_FILE_SIZE long
goto CHECKPOIT
else
log FILE_NAME FILE_OFFSET RAW_FILE_SIZE
endif
next i
lordchrome
Posts: 25
Joined: Wed Oct 21, 2020 9:24 am

Re: Need Help Extracting Disney Bolt PS3 ONE.HOG Archive

Post by lordchrome »

Shokoniraya wrote:25 to life \ Bolt bms script
there is a encrypted file in 25 to life game (i attached the file in this comment)

use -w -o in command line (for QuickBMS)

Code: Select all

get SIGNATURE short
get VERSION_FLAG short
get INFO_TABLE_OFFSET long
if VERSION_FLAG > 1
get ENCRYPTION_BLOCK long
if ENCRYPTION_BLOCK != 0
print "archive is encrypted!"
cleanexit
endif
if VERSION_FLAG > 2
print "version %VERSION_FLAG% is not supported! only version 1 & 2"
cleanexit
endif
endif
get UNKNOW_1 long #lable?
get FILES_COUNT long
get INFO_TABLE_SIZE long
get INFO_TABLE_LABLE long

goto INFO_TABLE_OFFSET
for i = 0 < FILES_COUNT
get FILE_NAME_OFFSET long
savepos CHECKPOINT
goto FILE_NAME_OFFSET
get FILE_NAME string
goto CHECKPOINT

get FILE_OFFSET long
if VERSION_FLAG = 1
get NULL long
endif

savepos RAW_FILE_SIZE_LOCATION
get RAW_FILE_SIZE long
if VERSION_FLAG = 1
get NULL long
get COMPRESSED_FILE_SIZE long
get NULL long
get DECOMPRESSED_FILE_SIZE long
get NULL long
get UNKNOW_2 long
endif

get FILE_ID long
if VERSION_FLAG = 1
get UNKNOW_3 long
get UNKNOW_4 long
endif

if COMPRESSED_FILE_SIZE = DECOMPRESSED_FILE_SIZE
comtype COPY
else
comtype zlib
endif

if VERSION_FLAG = 1
if COMPRESSED_FILE_SIZE = DECOMPRESSED_FILE_SIZE
clog FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE DECOMPRESSED_FILE_SIZE
elif COMPRESSED_FILE_SIZE = 0 & DECOMPRESSED_FILE_SIZE != 0
log FILE_NAME FILE_OFFSET DECOMPRESSED_FILE_SIZE
elif DECOMPRESSED_FILE_SIZE = 0 & COMPRESSED_FILE_SIZE != 0
log FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE
else
clog FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE DECOMPRESSED_FILE_SIZE
endif

savepos CHECKPOIT
goto RAW_FILE_SIZE_LOCATION
put DECOMPRESSED_FILE_SIZE long
goto CHECKPOIT
else
log FILE_NAME FILE_OFFSET RAW_FILE_SIZE
endif
next i



This didn't work. The file You sent has file signature 01 00 02 00 while mine is 00 01 00 01. Also it says that it is encrypted. However you did help me realize that the file you sent me has the same signature as the one for the PS2 version of bolt. So I used the 25 to life code on the website and did a test and it extracted all the hog files except for say.hog. Your code also does the same thing to except it can also extract say.hog which was 57 kb. So thank you very much for that. Got really excited when it worked for the ps2 version.


Edit: This kinda works with PC version of hog files which is 01 00 01 00 while the file you sent is 01 00 02 00 so you might be on to something. Also I get this when I extract the PC Hog files


offset filesize filename
--------------------------------------
00000150 32 CHARACTERS\DISKY.DBL

Error: problems with input file number 0, can't write 4 bytes.

you MUST use the -w option for enabling the file writing mode


Last script line before the error or that produced the error:
69 put DECOMPRESSED_FILE_SIZE long

Press ENTER or close the window to quit

The size of the file will always be 32 bytes
lordchrome
Posts: 25
Joined: Wed Oct 21, 2020 9:24 am

Re: Need Help Extracting Disney Bolt PS3 ONE.HOG Archive

Post by lordchrome »

So I was messing with Shokoniraya's modified code for 25 to life that now works with 25 to life and bolt to see what would happen. After a bunch of tries, I decided to delete the line that might be the problem on line 69 put DECOMPRESSED_FILE_SIZE long.

This improved the code and not only works with the ps2 version of bolt which the hex is 01 00 02 00 but also the pc version 01 00 01 00. It still does not work with the PS3/XBOX 360 version of bolt which is 00 01 00 01 since the archive is encrypted but I know there is a way to decrypt it.

Here is the code if you want to examine it.

Code: Select all

get SIGNATURE short
get VERSION_FLAG short
get INFO_TABLE_OFFSET long
if VERSION_FLAG > 1
get ENCRYPTION_BLOCK long
if ENCRYPTION_BLOCK != 0
print "archive is encrypted!"
cleanexit
endif
if VERSION_FLAG > 2
print "version %VERSION_FLAG% is not supported! only version 1 & 2"
cleanexit
endif
endif
get UNKNOW_1 long #lable?
get FILES_COUNT long
get INFO_TABLE_SIZE long
get INFO_TABLE_LABLE long

goto INFO_TABLE_OFFSET
for i = 0 < FILES_COUNT
get FILE_NAME_OFFSET long
savepos CHECKPOINT
goto FILE_NAME_OFFSET
get FILE_NAME string
goto CHECKPOINT

get FILE_OFFSET long
if VERSION_FLAG = 1
get NULL long
endif

savepos RAW_FILE_SIZE_LOCATION
get RAW_FILE_SIZE long
if VERSION_FLAG = 1
get NULL long
get COMPRESSED_FILE_SIZE long
get NULL long
get DECOMPRESSED_FILE_SIZE long
get NULL long
get UNKNOW_2 long
endif

get FILE_ID long
if VERSION_FLAG = 1
get UNKNOW_3 long
get UNKNOW_4 long
endif

if COMPRESSED_FILE_SIZE = DECOMPRESSED_FILE_SIZE
comtype COPY
else
comtype zlib
endif

if VERSION_FLAG = 1
if COMPRESSED_FILE_SIZE = DECOMPRESSED_FILE_SIZE
clog FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE DECOMPRESSED_FILE_SIZE
elif COMPRESSED_FILE_SIZE = 0 & DECOMPRESSED_FILE_SIZE != 0
log FILE_NAME FILE_OFFSET DECOMPRESSED_FILE_SIZE
elif DECOMPRESSED_FILE_SIZE = 0 & COMPRESSED_FILE_SIZE != 0
log FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE
else
clog FILE_NAME FILE_OFFSET COMPRESSED_FILE_SIZE DECOMPRESSED_FILE_SIZE
endif

savepos CHECKPOIT
goto RAW_FILE_SIZE_LOCATION
goto CHECKPOIT
else
log FILE_NAME FILE_OFFSET RAW_FILE_SIZE
endif
next i
z4ruz
Posts: 75
Joined: Sun Jan 10, 2021 2:23 pm

Re: Need Help Extracting Disney Bolt PS3 ONE.HOG Archive

Post by z4ruz »

Hello. You're missing single step provided by author of script:
use -w -o in command line (for QuickBMS)

Also the error message:
you MUST use the -w option for enabling the file writing mode

There's short showcase on how to use it:
a0.gif

This way the script works without modifications.

Note: the source file was modified since of -w. I checked and there are no changes. So the only date, time were modified.

Refer to readme for description of those options, or just launch quickbms from cmd:
b2.gif

Also, no need to quote, if message context is clear.

Good luck!
z4ruz
Posts: 75
Joined: Sun Jan 10, 2021 2:23 pm

Re: Need Help Extracting Disney Bolt PS3 ONE.HOG Archive [Solved]

Post by z4ruz »

Disney Bolt / PS3 / .HOG / Avalanche Software
extracts, also decompresses
requires segs.bms with lines 5-9 commented (add /* at 4 and */ at 10)

Usage:
After extracting ONE.HOG it is recommended to apply script on whole folder with sub-HOGs, rather then on single files. Then repeat, and all the files are extracted.
lordchrome
Posts: 25
Joined: Wed Oct 21, 2020 9:24 am

Re: Need Help Extracting Disney Bolt PS3 ONE.HOG Archive [Solved]

Post by lordchrome »

When I was messing with the files last night I was wondering if their was a seg script but wanted to check that another time and I'm glad it's on this website. Also I'm really appreciating all the help. Combining the hog extractor with the seg script was a good idea for the ps3 hog file because of all the seg files.