Game hacking - Hex editing save games

Before the internet most people would get their cheat codes from gaming magazines, gaming guide books or a BBS. In my circle writing walk throughs and cheat sheets for games and posting them to "our" BBS was the quickest way to fame. Modifying your save games to gain endless wealth or lives is very simple as still a valid technique today, and I'm going to show you how to do it.

In order to follow this "tutorial" you will need five things:
  1. A computer
  2. The internet (to read this article and download software)
  3. A hex editor (I use HxD)
  4. A game where you can save your progress
  5. Basic understanding of hex (or this cheat sheet)
For my tutorial I am using the free game Decker. It is a "hacking" game based on neuromancer/shadowrun. Grab a copy from http://www10.caro.net/dsi/decker/, microwave some popcorn and lets have from fun.

So lets fire up decker, choose to start a new game then pick your character's name and image. Then as soon as we enter the game, save it. I named mine "first-save.dsg". This is your baseline file to compare against.
decker-character-initial.pngdecker-spend-some-cash.PNG
Next enter the shop and spend some of your $100 starting money. Then save the game again. This time I named mine "spent-money.dsg". Now comes the fun part, open both dsg files in HxD and use the Analyse->Compare->File compare operation (ctrl+k).

Here is where some basic hex knowledge comes in handy, we know we started with $100 (xx in hex) and you should know how much money you had left in your second save game. If the changes matches both values then you should have the right offset.
decker-compare-files-money-offset.png

Now we change this value to FF FF to give ourselves a decent amount of cash. Open decker again and load your modified save game to confirm that you have $65535 (FF FF = 65535). Now you have the option of spending this money, if you do then remember to save a new base line file for comparing against before you do the next step.

decker-compare-files-changed-money-offset.png
decker-character-richguy.png

Next it's time to do a mission, I picked a simple IO mission and found the controlling node right away. I disabled the alarms and disconnected from the matrix. This gained me a skill point. This is a great time to save a baseline file (which I didn't) and then you can load it and reuse it to find the offset for each skill. However I spent it right away on stealth. I then saved the file and opened spent-money.dsg and sneaky-guy.dsg in HxD to do a file compare. This time there was more than one change.
decker-mission-success.pngdecker-sneaky-guy.PNG

decker-compare-files-sneaky-first-change.png
The first change is in an offset we know is money.

decker-compare-files-sneaky-second-change.png
The second change is unknown to us, and although it has changed in value by 1, it does not match the before and after values we expect.

decker-compare-files-sneaky-third-change.png
The third change has the right values in the before and after files. I changed the offset to FF ,saved the file and opened it up in decker. With a stealth skill of 255 you don't have to upgrade your gear or software to complete missions with ease.
 
decker-hacked-stealth.png

However, it would be nice with some symmetry between the skills, hardware and software levels. I'll leave that as exercise for you.

Here are some other offsets you might want to change:
[ Character stats ]
00000010 06-08 = Money
00000010 0A = Lifestyle (00-04)
00000020 02 = Mission success/failure tracking value (for next attribute point?)
00000020 06 = Attack attribute/skill
00000020 0A = Defense attribute/skill
00000020 0E = Stealth attribute/skill
00000030 02 = Analysis attribute/skill
00000030 06 = Programming attribute/skill
00000030 0A = Chip design attribute/skill
[ Cyber deck stats ]
00000100 0D = CPU Rating
00000110 02 = Attack firmware
00000110 06 = Defense Firmware
00000110 0A = Stealth Firmware
00000110 0E = Analysis Firmware
00000120 02 = Coprocessor

Challenge:
Can you find the offset for your softwarelevels, loaded and autoload settings?


















No Clean Feed - Stop Internet Censorship in Australia
Creative Commons License
This weblog is licensed under a Creative Commons License.