Not just A Game Hacker...
Here's a seemingly atypical tutorial on "Cheat Engine". It's mainly about hacking games, but we'll see there's quite a bit more to it than just games. So, let's dive in.
First of all, what is Cheat Engine?
Cheat Engine is an open source tool designed to help you to modify (mostly) single player games so the user can make them harder or easier depending on their preference. (Example: If you find that 100HP is too easy on a particular game, you can try playing a game with a maximum 10 HP as a challenge). Cheat Engine(CE) also contains several other useful tools to help debugging and really just messing around with games and pretty much any applications.(Example: As a prank, one may alter the download speed shown in a torrent client/download manager to perhaps 100Gbps or something like that.)
- CE also comes with a memory scanner to quickly scan for variables used within a game and allow you to change them, but it also comes with a debugger, disassembler, assembler, speedhack, trainer maker, direct 3D manipulation tools, system inspection tools etc. - The ultimate tool for a mischievous programmer. So, read on to find out how CE does it.
- Although CE can do quite a bit more, let's take a look at an example of "hacking" a game. Now, every single application there is uses what's called "variables" to store various values. In a game, for example, the player's HP, level, ammo, position - literally everything is stored in certain variables. There could be a separate variable with values 0-100 keeping track of hit points (HP), another variable keeping track of what level the user is currently in, and perhaps three more keeping track of the X,Y,Z coordinates of the avatar or player in a 3-D game. Almost all new games these days run in cycles. What I mean by that is the game has a recurring infinite loop of some function (group of statements) that goes on and on until the player exits/pauses the game. Inside the loop, the function's code checks to see if (example) any user event has occurred. Did the user press the arrow keys? If so, then update their position accordingly. Did s/he click the left mouse button? If so, then decrease ammo by one and call the function to launch a projectile from the gun and so on. Certain aspects of games often rely completely on a particular variable and trust it to maintain a legit value. Considering that the average user may never even know about the existence of these background variables, it's a reasonably safe bet. It's just a game after all and implementing double checks, encrypted values and a sealed environment (sandbox) is simply not worth spoiling the performance and gameplay. This small point is what leaves almost every single player game vulnerable to nosy software such as Cheat Engine.
- Rewinding back, how does any of this relate to hacking? It all lies in experience. CE teaches you how to find out exactly what the problem is and how to solve it. The procedure for tampering with games is very close to what we will try to accomplish in later, more advanced hacking techniques. CE gives you the feel and thrill of cracking a seemingly impossible problem and teaches you how to look for an open window when the door is locked - which is actually a very accurate definition of hacking. CE gives you a hint, a glimpse of advanced hacking procedures to which we shall get to later on. Fair warning, in my experience I've noticed that the number one reason for beginners giving up early while learning hacking is simply because it just gets a little boring. Outside of movies, that's just the way it is. But for those willing to make the journey, the reward is more than worth it. I admit that to truly enjoy using CE, you have to be somewhat of a gamer. Hacking depends on, more than anything else, practice because practice only can give you the experience needed to truly hack like what you see in movies. (Yes, it's possible. Everything is..) CE is nowhere close to a professional hacking tool, but it's a step in the right direction (plus it's fun). For the programmers, as I mentioned before CE is open source - It's all out there waiting for you to explore. (Check out the official website given below)