
Hash all, and take the ones existing in the entry table Those are easy to get, just run strings on the exe. Some system files, like the font, have file names directly stored in the execuable So theoretically if you know all the folders you can brute force faster Then it would hash "levels/5/enemy/bat/model.dat" The game engine statically links something like libc, so it uses sprintf to generate in runtime file names.įor instance sprintf('levels/%d/enemy/%s/model.dat", 7, "bat") If you want to extract the right file names, you need to bruteforce the hashes from the index table with the function above (Hacker Note 1) Then hashes the generated names and looks it up in the index table to find offset and size.

So each entry should be 12-bytes, given each member 32-bits

It's just another ELF inside the game ( top.prx?) Those numbers are not random, they are the hash of the filename string, as per the above hash function.įor example, it's actually pretty trivial to "detach" this game, from Phantasia X, resulting in 2 independent ISO's.

Some system files do have their names in the ELF ( all.dat). Except that they don't appear enywhere in the.
