Uninformed: Informative Information for the Uninformed

Vol 1» 2005.May


Introduction

Games can often times be very frustrating. This frustration stems from the inherent fact that games, by design, present many unknowns to the player. For example, how many monsters are lurking behind door number three, and are these eight clips of 90 50 caliber rounds going to be enough to kill this guy? Ten lives and a broken keyboard later, acquiring the ability to not only level the playing field, but get even, grows extremely attractive, at any cost. Some people risk reputational and karma damage to acquire that edge - by cheating.

Many develop cheats for this very reason, to obtain an unfair advantage. Others, however, have an entirely different motivation - the challenge it involves. Motivations aside, the purpose of this document is to familiarize the reader with basic methodologies and tools available that aid in the practice of reverse engineering native Windows applications. Throughout, the reader will be introduced to WinDBG, IA-32 assembler, and portions of the Windows API. These concepts will be demonstrated by example, via a step by step navigation through the portions of WinMine that are pivotal in obtaining the coveted unfair advantage.