Features
- Searching
- Data
Type Search
- Many
data types, including byte, short, long, __int64, float, double,
and more.
- Many search types.
- Exact Value
- Not Equal To
- Range
- Greater Than
- Lower Than
- Unknown
- Perform
aligned searches (recommended).
- String
Search
- ASCII, Unicode, binary, Wildcard, and Regular Expression searches.
- Useful options such as Match Case, Whole Word Only, and Aligned.
- The only memory searcher available with Wildcard and Regular Expression searches.
- Pointer
Search
- Find dynamic and/or
static pointers.
- Find
pointers that point to an exact location, not at a location, a range of locations,
locations higher or lower than another location, or all
pointers.
- Save
the offset of your desired address from where each found
pointer points. This helps you clearly see which pointers
point to areas close to your desired address.
- Group
Search
- Find
patterns of numbers using various techniques.
- Useful for finding tilemaps in tile-based games, especially in ROM games.
- Sub Search
- All
of the standard sub-search types, including Same, Not Equal To, Different,
Increased, Decreased, Exact Value, Range, and Changed By.
- New sub-search type helps
you find your target even faster! Use "Same As Original" to find numbers that are the same
as they were when you first started your search!
- Script Search
- Unlimited potential. You have full control over what is added to the list and what is not.
- Easy to use and fully documented with easy-to-understand examples.
- Fastest Searches
- Memory Hacking Software features
the fastest searches available.
- Search Options
- Pause the target process while searching (improves speed greatly).
- Adjust the searching thread's priority.
- Omit useless sections of memory from your search (improves speed greatly).
- Postflush and precache use threading to perform file operations while the search continues.
- Optionally use Epsilon for float/double searches. Smart Epsilon uses Epsilon only on numbers that might cause rounding errors.
- View RAM
In Real-Time
- RAM Watcher
- View
RAM addresses as bytes, characters, integers, shorts, longs,
floats, and bits, all at once. Easy to see what an address
is in many different types.
- All
addresses are displayed in real-time. Watch them change
as you play your game. Easy to see what addresses are related
to what game actions.
- Hex Viewer
- Also loads any size of file quickly and with little RAM consumption.
- View
addresses literally or relatively.
- Color
codes show you areas in RAM that are static, executable,
free, mapped, and unmapped. Chunk boundaries are highlighted
for you, and you can optionally highlight all pointers.
- All
addresses are displayed in real-time. Watch them change
as you play your game. Easy to see what addresses are related
to what game actions.
- Optionally
highlight addresses that have changed. Extremely easy to
determine when and why a value in RAM is changing based
off your in-game actions.
- Multiple
display types show you the RAM in bytes, characters, integers,
signed/unsigned shorts, signed/unsigned longs, signed/unsigned
64-bit integers, floats, and doubles.
- Quickly
jump to pointer locations.
- Debugging
- Executable
Breakpoints
- When
a breakpoint is hit, up to 3 functions can be called. Even more is that you get to decide which functions are called!
But that's not all. Not only can you pick from any of the
built-in functions, you can write your own using a DLL
plug-in! A sample project for this type of plug-in is on
this site. Still more: breakpoints can also call your script functions, making it even easier to add your own custom code for handling breakpoint hits.
- Read/Write/Access
Breakpoints
- All the same features as above, but the break occurs
when the target address is read, written or accessed. Very useful for finding the code that changes your ammo or health!
- Built-in
functions do a range of tasks, from beeping to opening a disassembly window and allowing
you to step through the code.
- Any
combination of 3 functions can be used for each breakpoint,
including your own custom plug-in functions and script functions.
- Conditional
Breakpoints
- You can set any condition on a breakpoint
you can imagine.
- The conditional syntax matches that of C/C++, with keywords EAX, ECX, EDX, etc. used to access the values of registers, and new keyword HC to get the hit count of the breakpoint.
- Exports/Imports
List
- Lists
any module's exports and crosschecks them with the selected
module's imports to give you a condensed list of every module
from which any other module imports functions.
- Every
function is listed with its address in the target process's
memory space, so hooking functions and tracing memory is
exceptionally easy.
- Save Breakpoints
- Share
with your friends easily. The exporter wraps together all
the files needed to make your breakpoint work on your friends'
machines.
- Disassembling
- Decoded
Addresses
- Calls
are decoded to function names when possible.
- Single-Stepping
- Assemble Code
- The Disassembler can also assemble!
Change the game's code to do what you want.
- NOP!
- Automatically NOP entire commands quickly and easily.
But what's even better is that you can also un'NOP them! For a period of time, Memory Hacking Software will remember the commands you NOP'ed and allow you to undo the NOP'ing easily.
- Highlights
- The Disassembler uses colors to highlight jumps, calls, and their targets when you move your mouse over them.
This makes it very easy to see where a jump goes.
- Useful Status Bar
- The Disassembler's status bar gives you additional information. It decodes address equations such as “ESI+4*EBX” and explains ASM commands, often providing a preview of the results after they are executed.
- Inject Code
-
Memory Hacking Software allows you to inject code into the target process more easily than you could with any other software.
All you must supply is the address where you want to take control and the actual code you want to be executed. Memory Hacking Software will find a code cave for you, compile your ASM into machine code, add JMP's to the code cave and back to the original code,
and it adds the instructions being overwritten by the initial JMP to your code cave. This allows you to focus on exactly what you
want to do: inject code. It even gives you a preview of your code cave so you know exactly what it is doing.
- Call Remote Functions
- Call any function in the target process with any number of parameters.
- Parameters can be any valid expression, making it easy to construct parameter lists.
- The return value of the remote function is shown after being called.
- Stable and user-friendly—little risk of crashing Memory Hacking Software or the target process if the parameters, function address, or calling type are incorrect.
- Auto Hack
- Shows you all the code that reads/writes/accesses addresses.
- Explains the resulting code and shows register values at the time of execution.
- Customize
-
Change the font to your liking. Any style or color.
-
Change the colors. Don't like the defaults? Some colors are hard to see? Like white text on a black background?
-
Change the output. Prefer IDEAL decoding? Want lower-case disassembly? Tons of options.
- Many
Features Still Beta, but Plenty to Come!
- Inject Code
- Specify a code-cave address, or let Memory Hacking Software find or allocate one for you.
- Memory Hacking Software automatically adds the JMP to the code cave.
- Adding the JMP to the code cave causes some instructions in the original code to be overwritten, but these are automatically moved to the code cave too, with your choice to put them at the beginning or end.
- The JMP back to the original code is automatically added for you.
- Injections can be set to load automatically when a process is opened.
- Inject DLL’s
- Inject DLL’s of your choice into the target process. All injected DLL’s are listed and can be removed at any time, and can even be set to automatically be removed when Memory Hacking Software closes.
- Remotely call any function from any injected DLL inside the target process. No restrictions on calling convention (__cdecl or __stdcall), return type, or parameters. Any valid expression is allowed as a parameter, making it easy to write your parameter list.
- Remotely calling your DLL functions is safe and easy—even if incorrect parameters are passed or the wrong calling convention is used, there is little risk of crashing the target process or Memory Hacking Software.
- The return value is taken from the target process and shown to you.
- Scripting
- Memory Hacking Software features a full-sized programming language with full C capabilities. IDE, compiler, and virtual machine are all included so coders are ready to write scripts straight out of the box.
- Syntax matches C, so there is no need to learn a new language. C/C++ coders are ready to go.
- New extern variables make it easy to read from/write to the target progress’ RAM.
- Scripts are compiled into bytecode like Java for extremely fast execution.
- Includes a full 100% standard-compliant preprocessor, which even supports variadic macros.
- Includes an extensive and fully documented API.
- All script features are well documented and many examples are provided.
- Hotkeys
- Assign any function to any key.
- Scripts can be assigned to hotkeys to allow you to perform any operation at the touch of a button.
- Real-Time Expression Evaluator
- All C/C++ operators recognized, including <<, >>, &, ~, ||, and !, to present a few.
- Recognizes module names and converts them to their respective base addresses.
- New [ ] operators read RAM from the target process and use the resulting value in the expression. For example, [([[Project64.exe+0xD6A3C]+0x62988]&0xFFFFFF)+[Project64.exe+0xD6A3C]+0x2D4] is a valid expression while Project64.exe is open.
- All expressions are evaluated in real-time, so you see the results while the target process’s RAM changes.
- More
- Converting
- Many
Options
- Many
Unique Features
- Very Stable
|