MemoryHacker manual
MemoryHacker Copyright (c) 2000 Daniel Wilke


Choose a topic:

1. General information
1.1 What is this?
1.2 Features

2. Mainwindow
2.1 Display
2.2 Numerical-Editor
2.3 Text-Editor

3. Menu-Start
3.1 Open process
3.2 Close process
3.3 Exit

4. Menu-Edit
4.1 Memorydump
4.2 Save memory
4.3 Load memory

5. Menu-Find
5.1 Goto
5.2 Find value
5.3 Find values
5.4 Find text

6. Menu-Bookmarks
6.1 Add bookmark
6.2 Delete bookmark
6.3 Goto bookmark

7. Menu-Options
7.1 Table in hex
7.2 Table in dec
7.3 Memoryrefresh

8. Menu-Info
8.1 About
8.2 Register

9. FAQ (Frequently Asked Questions)
9.1 What is the "memory" of an application?

10. Copying this tool







1. General information

1.1 What is this?

MemoryHacker gives you the ability to read and write into the memory of other applications. Finding memoryaddresses in games is the basis of making own trainiers. This tool gives you a lot powerfull functions to try out how the application reacts to the changes.
You should use a resolution of 1024x768 or higher.

1.2 Features

- numerical-editor shows bytes in hexadecimal or decimal
- text-editor for fast textchanges
- making memorydump
- saving memory to file
- loading memory from file
- finding successions of bytes with possibility of giving irrelevant positions
- finding specific bytes in no special order in a specified maximum of distance
- finding text
- bookmarks to find specific positions directly
- refreshing editors in a specified interval to still work with newest values


top



2. Mainwindow

The mainwindow is divided into three parts: The display, numerical- and text-editor.


2.1 Display

The display shows the path of the current processes executable you editing and the current position (decimal and hex) in memory the cursor is.


2.2 Numerical-Editor

The numerical-editor is the left grid. It shows you the bytes in the memory at the current location. To change kind of display (decimal or hex) read part 7.1 and 7.2.
Simply set the cursor to the byte you want to change and enter the new value. On leaving the cell, MemoryHacker writes the new value into the memory of the current process.
If you are currently on a page that is not readable because not used by the game, you will see "NA" (not available) in the cells.

2.3 Text-Editor

The text-editor is the right grid. It shows all values as text, so you can easily read the text. Writing works as same is in the numerical-editor. Just set the cursor to the position you want to change and write your text like in all other texteditors.

top


3. Menu-Start


3.1 Open Process

At first you have to choose a process. To choose one select this menupoint. It will open another window with a list of running processes executables. Choose one and press OK.

3.2 Close Process

This closes the process you currently editing.

3.3 Exit

This quits the MemoryHacker ;)

top


4. Menu-Edit


4.1 Memorydump

Memorydump means to save the entire memory a process is using. Clicking this menupoint will open a new window that shows the size of the memory the process is using. The editfield needs the filename you want to save the memory to. Press the "..." button to get an save-file-dialog. Remember that the file will get such big as the size shows!

4.2 Save memory

This function is same as memorydump, but it lets you choose in the new window the startaddress in the memory and the count of bytes you want to save from there. The way of saving memory is a little different as the memorydump. It writes all not used memory as zero's in the file. This uses more diskspace, but you can still reconstruct the address of each byte.

4.3 Load memory

"Load memory" loads an entire file to the position you entering as startaddress. Press the "..."-button the get an open-file-dialog. The load-method is same as save-method.



top


5. Menu-Find


5. Goto

"Goto" opens a new window that needs the new position to go to. Enter it in the first editfield as decimal, or choose the second to enter it in hex.

5. Find value

This function lets you find a succession of bytes. First choose if you want to enter decimal or hex values. Then enter the bytes seperated by a space. MemoryHacker lets you define irrelevant positions with an "x".
Here some examples:

You enter decimal "20 87 0"
-> it finds only exactly these succession of bytes

You enter decimal "20 x 0 x 2"
-> it finds all successions that have at first a twenty, then anything else, then a zero, after that anything else and at last a two.
e.g. "20 38 0 33 2" or "20 255 0 99 2"

You can also enter in hex like "AA x AC x AF"...

5. Find values

This is the most complex function. You can search for bytes (in decimal or hex) that do not have to match an order. Instead you enter in what blocksize they have to be. So all your entered values have to be in a defined size of memory.
Here some examples:

You enter decimal "20 30 40 50" with a blocksize of 10
-> it finds all blocks with a size of 10 bytes that containes the bytes twenty, thirty, fourty and fifty.
e.g. "55 40 213 199 20 0 50 30 33 12"
The same you can do with hex...

5. Find text

Enter the text you want to find and deselect "case sensitive" if you dont want to convert all small- in capital letters.
Example:
You enter "Town" and select "case sensitive"
-> it finds really only texts with the exact matching of "Town"
You enter "Town" and deselect "case sensitive"
-> it finds all text that matches only in general "Town"
e.g. Down"town" or "tOwn" or "TOWN" or "tOWN"

top


6. Menu-Bookmarks


6.1 Add bookmark

This function adds your current cursorposition to your bookmarks. You have to enter a name for it that represends it in the "Bookmarks" menu.

6.2 Delete bookmark

A new window with your current list of bookmarks comes and you can delete each you want. Very exciting hehe ;)

6.3 Goto bookmark

To use a bookmark, go to the menu "Bookmark" and select it in the list. Instead you can use the hotkeys MemoryHacker gives each bookmark, shown at the right of the name. With the hotkey you dont need to open the menu, just press the Functionkey that is binded with the bookmark.



top


7. Menu-Options


7.1 Table in hex

This lets the numerical-editor show its values in hex.

7.2 Table in decimal

Lets the numerical-editor show its values in decimal.

7.3 Memoryrefresh

Every time you use the scrollbar the editors are filled with the current values. But its not really satisfactory still to click up and down to see changes.
So theres the Memory Refresh-Option that lets you define a refresharte in milliseconds at which the editors are filled with the new values. E.g. you want to see changes of your coordinates by running in a game.
This option sets you in watch-only mode at the editors. You wont be able to set any value by using the numerical- or text-editor! There's a red text in the display part remembering you that. To disable this mode, just click the red text or disable it at the menu "Options/Memoryrefresh".


top


8. Menu-Info


8.1 About

This shows you the version of MemoryHacker and the URL www.MasterUltima.de where you can get updates and more great toolz.

8.2 Register

Yes! This tool is SHAREWARE until its registered! You can read all about the registration in REGISTER.TXT!



top


9. Frequently Asked Questions


9.1 What is the "memory" of an application?

The memory of an application is where it saves values. Every application saves its values in the RAM of your PC. How many RAM you have means how much values, how much information an application can hold.

How you know, RAM is currently described in megabytes. Means about how many millions of bytes your PC can save in it. Such a BYTE is a number of 0 to 255. So if you have 64 MB (megabytes) of RAM, your PC can save about 64.000.000 of these "byte" values from 0 to 255!

If you are playing a game and you have 3 lives, theres a byte with the value of 3 in the memory of the game. When you change this value to a 7 you will have 7 lives... So to change the memory of a game makes you very powerfull, able to change every rule, every value, just anything you want!

But how does the game saves values greater than 255? Just take TWO BYTES and use the second one as a multiplier of 256. But each byte you add you have to add it from the left, so your second byte gets the first one by reading from the left.

Example:
First Byte: 2
Second Byte: 1
you multiply 256 by 2 (the first byte) = 512
and then add 1 (the second byte) to 512 = 513

First Byte: 255
Second Byte: 255
you multiplay 256 by 255 (the first byte) = 65280
and then add 255 (the second byte) to 65280 = 65535

You see the current maximum with TWO BYTES is 65535! When you need still greater values, add a THIRD BYTE and so on. Important is to multiply by the last maximum + 1, so the new byte (the new first one) would you have to multiply by 65536...

So the memory is just a succession of a combination of bytes. Only the application knows at what address which value is and how many bytes it uses.

E.g. the game uses the following:

Memoryaddress Value Bytes
109876 Lives 1
109877 Armor 2
109879 Ammo 2
109881 Your position-coordinate X 4
109885 Your position-coordinate Y 4
109889 Your position-coordinate Z 4


If you got these memoryaddresses, its easy to set them a new value to cheat.


top


10. Copying this tool

Everybody is allowed to copy this tool and offer it on his page when he makes a link to my homepage at http://www.MasterUltima.de too!


top