

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. Now the game doesn't store names anywhere, but rather generates them at runtime.Then search both offsets and sector in the exe.

-1527431175.jpg)
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.
