
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. Now the game doesn't store names anywhere, but rather generates them at runtime.

Then search both offsets and sector in the exe.

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