-
Notifications
You must be signed in to change notification settings - Fork 27
DATA.BIN Encryption
The DATA.BIN file on the Monster Hunter UMDs contains all of the quests, graphics, musics, dialog, etc. Only Monster Hunter Portable 3rd and 2nd G encrypt the DATA.BIN and there are a few files that are left unencrypted such as the movies.
##Table of Contents
The DATA.BIN is a sort of archive which starts out with a table of contents for the files it contains which is split into two sections.
The first section is a list of block offsets for the start of each file inside the DATA.BIN file, where a block is 2048 bytes. Each entry is a 32 bit integer and the last entry in this section will be the block offset of the end of the DATA.BIN file.
The second section is a list of the exact sizes for some of the files. Each entry is a 32 bit integer that gives a zero based index to a file entry in the first section and another 32 bit integer that gives the exact length of the specified file.
##Decryption To decrypt a section of the DATA.BIN you must start at the beginning of a 2048 byte block and initialize the key with the block number. Each encrypted section is a certain number of blocks and if the file is not a multiple of 2048 bytes it is padded with a static sequence of bytes.
##Location of functions in Monster Hunter Portable 3rd
I found these function using PSPLink by putting a break point on sceIoRead
and following the code.
The decryption function can be found at 0x0886278C
and the key initialization function can be found at 0x0886233C
in memory.