Hacking a DOS 32 bit protected mode game from 1997
It's been a long time since I've looked at X86 assembly, and I thought it might be fun to reverse engineer a game I enjoyed playing when I was much younger - US Navy Fighters.
Hacking tools
IDA (Interactive Dissassembler) - download IDA 8.3 from https://hex-rays.com/ida-free/ (free for personal use). I'm using the linux version. To install chmod +xx the installer and accept the license agreement. Choose the install location, I chose idafree-8.3 in my home folder.
chmod +x idafree83_linux.run ./idafree-8.3/ida64
Debugger - USNF is a DOS game and won't run on linux natively, however it runs perfectly fine through DOS-Box. The good news is DOS-Box is available as a special debug build, with an integrated debugger. This allows us to set breakpoints, peek at memory locations, etc, and should very helpful in analysing the game. To get the debug build we'll need to build DOS-Box from source. Download the source code from https://www.dosbox.com. There is some information on the build process on VOGONS.
Download the file: dosbox-0.74-3.tar.gz, and run the build. Install autotools if it's missing. Also, note the SDL 1.2 and curses dependencies:
sudo apt install autoconf autotools-dev automake sudo apt install libsdl1.2-dev libncurses-dev tar xvf dosbox-0.74-3.tar.gz cd dosbox-0.74-3/ ./autogen.sh ./configure --enable-debug=heavy make sudo make install
By default, the binary is installed into /usr/local/bin. I renamed my binary to dosbox-debug to distinguish it from the standard version:
sudo mv /usr/local/bin/dosbox /usr/local/bin/dosbox-debugContinue reading "Hacking a DOS 32 bit protected mode game from 1997"