Creating an Extensible Packet Manipulation System for an Online Game
Many reverse engineers get their first taste of reverse engineering by tinkering with video games. Games make fun targets because they have such a wide range of possible exploits and modification opportunities.
The most common way to modify a game’s behavior is by editing the binary directly. Usually, a debugger is employed to observe a particular routine with some sort of check that the user wishes to eliminate. As an example, perhaps a game checks if a user has a sufficient amount of mana power before allowing the player to cast a skill. Much of the time, this boils down to a compare and a conditional jump on the binary level. By modifying the code, the check can be modified in a way that always lets the player use the skill.
These sort of patches can be powerful, but are also limited in the scope of possible exploits. It becomes difficult to do much more than modify
Continue reading →