Hex Editor

Memory Hacking Software includes a real-time Hex Editor that allows you to view RAM in real-time and easily spot changes to RAM as you perform actions in your game. Changes are highlighted for ease in spotting.


Color codes tell you the properties of the RAM you are viewing. Blue is static, white is heap space, red is unreadable/unused, purple incidates pointers, and more. Mouse over pointers to see the value at the location where they point. Strings are automatically detected in both ASCII and Unicode formats.


Operate on both RAM and files. Files of any size can be opened and edited with virtually no load time or RAM consumption.


Many options: set to any font, customize colors, search, replace, add bookmarks, customized the widths (bytes per line), perform operations on the data, convert, and tons more.




The layout is clean, colorful, and informative.



DoomŪ 3 Cheat

The DoomŪ 3 cheat is an example of how powerful Memory Hacking Software is as the engine for your cheats.
Because Memory Hacking Software allows you to assign your own custom-made functions to breakpoints via a DLL plug-in, it is possible to write any cheat for any game; in fact it actually opens more potential to the user than previous methods of cheat-making, including injection.

Today, most cheats utilize code injection, which is the process of modifying the existing code to jump to your own code. When your code has been executed, you will jump back to the original function and the game will continue, not knowing it ever executed alien code.

This has two main downsides. Firstly, the level of the hacker needs to be sufficiently high—he or she needs to know assembly and how to inject code properly. Secondly, detectability. When you make a code pit, you change enough RAM that programs utilizing checksums (such as Maple Story) will be instantly alarmed at your efforts to modify their code.

Memory Hacking Software breakpoints give you every ounce of flexibility you would have with code injection, but it also gives you alternatives you can utilize if you wish that can not be utilized with code injection.

Code injection IS still entirely possible with this breakpoint method. When the debugger starts, it will send a notification to the cheat plug-in which will allow it to make any injections and acquire any resources it needs. In my cheat, this is where I scan DoomŪ 3's code and create backups. It is also where I initialize my information dialog.

From there, my cheat demonstrates multiple ways of activating/deactivating cheats. Some parts of the cheat NOP specific instructions. Some parts of the cheat take control of the game process at the breakpoints and change its registers, without changing any code.
All of today's current cheating methods are possible, but with new additions.

So, how does it work?
When a breakpoint in Memory Hacking Software is hit, Memory Hacking Software gains control over the target process. The target process stops and Memory Hacking Software is then allowed to do anything it wishes to the target process.
You can assign 3 functions to breakpoints in any order and combination you like. These functions can even be functions that you have written in a DLL!
With code injection, control is taken from the game and passed to one of your custom functions which you would have to write in assembly and inject into the target process. Once your code is executed, control would be granted to the game to continue on its way.
Breakpoints work in exactly the same way. When a breakpoint is hit, control will be passed to the function(s) you have assigned to the breakpoint being hit. If any of those functions are yours, this means your code will be executed, just like with code injection.
The primary difference is that you don't need to find space for code caves, and you only need to know basic C++, instead of advanced disassembly.
Another difference is that, because you are able to assign multiple functions to breakpoints, it is easy to switch your code on and off, and to assign functions to breakpoints that load the disassembler or print a message. This helps greatly with creating your cheat.

And, the largest difference of all, you don't have to create a shell for your cheats. You don't have to spend hours setting up a project whose job is to latch into the target process, get its handles, and possibly create a debugging loop. All of that is done for you.
Memory Hacking Software not only provides the tools that help you find the information you need to make your cheat, it also makes it easier than ever to actually construct your cheat.

It's so simple, it's almost like cheating at cheating!



The creation of the information dialog.
You can create a clean, easy-to-use interface for your cheats in any language you like, as long as the resulting DLL plug-in is compatible with Memory Hacking Software.
Your cheat will receive the notifications it needs to initialize any variables or dialogs, or make code injections, and also the notifications it needs to free the resources, close the dialogs, clean up code injections, and shut down.




The cheat runs together with Memory Hacking Software.
Individual breakpoints can be toggled on and off to enable/disable any aspect of the cheat you desire quickly. A good cheat has many options.



Just an example of how much information about the game I was able to find in the first 3 hours of hacking it, all using Memory Hacking Software.


Real-Time Expression Evaluator

The Real-Time Expression Evaluator recognizes nearly all C/C++ operators, including bitwise and logical operators such as <<, &, &&, and ||.


New [ ] operators allow reading from the RAM of the target process, and results of expressions are shown in real-time in a colorful list.




Even extremely complicated expressions are easily parsed and shown in real-time. This image shows the first five enemy Z positions in Perfect Dark® running in Project64 1.6, along with other expressions.



Copyright © 2004 Shawn (L. Spiro) Wilcoxen.