| ▲ | LunicLynx 6 hours ago | |
The way I do it is looking for markers. Most files have some kind of magic number in the beginning. So these can valuable to recognize. The next part is always looking into the values of 32 bit or 64 bit integers, if their value is higher than 0 but less then the files size they often are offsets into the file, meaning they address specific parts. Another recommendation is to understand what you are looking for. For games, you are most likely looking for meshes and textures. For meshes in 3D every vertex of a mesh is most likely represented by 3 floats / doubles. If you see clusters of 3 floats with sensical values (e.g. without an +/-E component) its likely that your looking at real floats. When looking for textures it can help to adjust the view on the data to the same resolution of the data your looking for. For example, if you are looking for a 8bit alpha map with a resolution of 64 x 64 then try to get 64 bytes in a row in your hex editor, you might be lucky to see the pattern show up. For save games I can only reiterated what has been mentioned before. Look for unique specific values in the file as integers. For example how much gold you have. I used these technics to reverse engineer: * Diablo 2 save games * World of Worcraft adt chunks * .NET Assembly files (I would recommend reading the ECMA specification though) * jade format of Beyond good and evil Ah yes, invest in a good hex editor of course. For me Hex Workshop has been part of this journey. | ||