Introducing Reverse Engineering to new Devs
I decided to write something that can help new devs to learn how to do reverse engineering. you don't need to be a genius to do this things. sometime some things are difficult, but others not.
today you will see how easy is the reverse engineering.
I decided to do it on a iPhone game (Galaxy on Fire 2)
This is quite simple. i downloaded a savegame from my iTouch. i usually start to find easy things. in this case i started to look for where the money value is located:
As first thing, i loaded the game end i read the money that it shows:
in this case the value was $ 805.300.261. if i turn it to HEX, i'll get 0x2fffe825. now, on my dump made with hexdump (you can use a simple hex editor) it doesn't exist. Then i realized that the values were not in Big Endian, but in Little Endian, so i looked for the value 0x25e8ff2f and i found it on the offset 0x68.
now this is the money offset. then i looked for a more complex thing: where, the quantity of an item that i have on my spaceship, is stored. i looked for my Intelli Jet rocket that i have on the ship (255)
now on that screen you can see that i have 255 rockets on each item space. at the beginning it was just on the Intelli Jet.255 in Hex is 0xFF. i looked on the offset table and i found many of them. so i started to edit just the one that was located somewhere that has a sense, like 0xFF000000 or similar and i found the place where the stuff was located. now the offset is not static, since i have done the same thing on a different savegame (always from GOF2) and it wasn't the same offset.
Explain it is not so easy, but probably somewhere, at the beginning of the file, is stored a hex number that say where you can read the item offset.
Now i saw that items are stored as some Hex ID (here you can find some of them found by me: http://pastebin.com/raw.php?i=y4kkdwmb ).
This is what i learned from the savegame:
Tell me if something is not clear. i'll rewrite that part if needed.
This is how i do Reverse Engineering.