

The only point of the program’s execution that matters to me occurs later in the program. I disabled both of these breakpoints and continued executing the code.

One is the entry breakpoint and the other is a TLS Callback breakpoint. There are two breakpoints that are set by default in the program’s execution. Modern video games often have protections in place that prevent them from being opened in a debugger. I can open the video game installer using 圆4dbg which is a good sign. Without a valid key one would be unable to install the video game and be met with the error message seen in the image displayed below.įor this demonstration I will be using 圆4dbg but most debuggers/disassemblers share the same functionality. I determined that the program required a name and a 26-digit key. An example would be the the “CDKey:” window you see in the third image displayed above. You can see some examples of the video game’s execution below:įrom there I could determine visual points of the program’s execution that were of importance to me. I started by making an effort to study the normal execution of the video game I was targeting. Let’s take a look at our program’s normal execution In order to study the kind of a process a cracker undergoes to crack a game I will be demonstrating the process I underwent to crack a popular video game from nearly two decades ago. Writing a keygen would require a cracker to completely reverse-engineer the algorithm that validates the entered key and understand it well enough to write a program that can create valid keys. They would then be able to write a patch for that program or possibly even a keygen which is a program that generates valid product keys. To accomplish this goal a cracker would typically reverse engineer the compiled program using a debugger or disassembler such as 圆4dbg, OllyDbg, GDB, or IDA. For example, a video game cracker may want to circumvent the need for a product key before installing a video game. This is most commonly some sort of copy protection feature. Software cracking or breaking involves modifying a program with the goal of circumventing some feature.

No software was distributed and all experiments were conducted within a Windows 7 virtual machine. All software tampering that occurs for the purpose of this article was done strictly for educational purposes.
