Main Interface
This is MemREs main Interface. I have color-coded the interface to better organize this section. Starting with;
- Menu Bar (Red Box)
The menu bar shows "Attach", "Inject" and to the far right, the current process MemRE is injected/attached to.
The Attach works like Cheat Engine, you can attach to any running process on your computer.
The Inject works similarly, but this will inject a new instance into the chosen process, effectively cloning itself. If you inject into a process, you are safe to exit the old MemRE instance.
Updated (Not In Screenshot): Settings currently holds your hotkeys and pause process while scanning; currently, hotkeys support letters and numbers to ensure functionality overall before adding special charters. Check This Update for more information.
On the far right will indicate what you are currently injected/attached to. Because i choose to open MemRE up with its loader, you can see "MemRE.exe" followed by the process ID of the loader. (Note, I renamed MemRELoader.exe to MemRE.exe)
- Search Results Window (Green Box)
This window will display all the found search results you perform with a memory scan. This will display the dynamic address, followed by the value of that dynamic address, the previous result of that dynamic address from the last scan, and the very first result the value was when the scan was made. With each scan, this list will update accordingly, and will give you insights on how many values are currently being displayed out of the total values MemRE has found. All Entries can be double clicked to add them to the Table List. Proceeding to the left;
- Memory Scanner Options (Purple Box)
This goes hand in hand with the Search Results Window (Green Box). This is where you can choose what value you would like to scan, including what the value type you think it may be and some scan options. Currently, MemRE can only search values, not strings. Within the dropdown boxes you will find the ability to scan the types of;
- Byte
- 2 Bytes
- 4 Bytes
- 8 Bytes
- Floats
- and Doubles
Following the next drop down box you will find scan options that will allow you to;
- Scan the Exact Value
- Scan a Value that's Bigger Than
- Scan a Value that's Smaller Than
- Scan for an Increased Value
- Scan for an Decreased Value
- Scan for a Unchanged Value
- And scan for an Unknown Initial Value
(For more information on data and scan types, see: 𝗱𝗼𝗰𝘀/𝘀𝗰𝗮𝗻𝗻𝗶𝗻𝗴)
Preceding downwards;
- Pointer Scan Window (Yellow Box)
Here is the start of pointer scanning. Currently in beta, there are some limitations to pointer scanning. Pointer scans must function as follows;
- A Static Base address is REQUIRED (Base Addr:)
- A Dynamic Address is REQUIRED (Dyn Addr:)
- Max Depth is changeable based on how far you want the pointer chain to be.
- Positional Offsets are OPTIONAL.
MemREs pointer scanner works differently than any other pointer scanner. While I will add support later on that makes the Base Address optional, but for now, MemRE will assume you have a good base address to do a pointer scan from (MemRE has Unreal Engine support. MemRE will automatically find a base address). The dynamic address will automatically fill in based on what address you have selected in your saved table list (Blue Box), we will talk more about the Saved Table List in the next section. Some other key points to talk about is;
- Scan Button
This will take your base address, Dynamic address and optional positional offset and scan for currently active chains within the criteria listed above. It also takes in account your currently set Max Depth, and will look for chains UP TO the Max Depth. Once done or stopped, the pointer table will prompt to save.
- View PTRs button
After a scan, you can view any saved pointer chain table at any point. This does not pop up right away, in case you want to jump right into another scan knowing you have many chains to pick from. However, when you are ready you can load in a pointer chain table and further analyze chains. (We will talk more about the Pointer Table Window later).
- Table List (Blue Box)
The table list will show all addresses you manually add to it. You can add addresses to the table list by double clicking any result in the Search Results Window (Green Box), or by adding them from the Pointer Scan Results Window. These addresses will make up your tables, that it be .mre or .CT. The key points of this list is as follows;
- Freeze
You can freeze any value from changing by clicking the box in the freeze Column. By freezing a value, MemRE will constantly write the value that is currently in the "Value" Column.
- Description
Here you can give a name to your entry. Names can be assigned by double clicking the "N/A" and assigning your own identifier. To save the changes, simply click off the entry, or press Enter.
- Address
This will display the current dynamic address located in memory either by resolving the dynamic address via pointer chain or the dynamic address directly. An address can be updated at anytime by double clicking the address which will trigger the address window to show. To save the changes, simply press the OK button.
- Type
This holds the value type assigned by the user. This can be any of the types listed in Memory Scanner Options (Purple Box), and will update accordingly as a new type is selected. To change a value type, the user must change it through the address dialog. A Value Type can be updated at anytime by double clicking the address which will trigger the address window to show. To save the changes, simply press the OK button.
- Value
This will hold the current value in memory that is associated with the address of the entry. Values can be changed to anything corresponding with the value type selected (See Scanning for more info on types). A Value can be changed at anytime by double clicking the Value Entry, and typing a new value in. To save the changes, simply click off the entry, or press Enter.
- Del
This is the delete button for each entry. This simply removes the entry from the list completely. To delete an entry, click the X button of the entry you would like to remove.
- Table Option Buttons (Brown Box)
These buttons will help you manage your Table List (Blue Box), with the exception of the exit button. The functionality of each button is as follows.
- Add Address
By clicking "Add Address", you will be able to manually add an address to the Table List (Blue Box). The window that prompts is similar to the window you would see when editing an address in the Table List (Blue Box). It will ask for the address (pointer chains supported, please see Pointer Scanner for formatting), and it will ask for the Value Type. Once finished, simply click "OK".
- Save Table
This will allow you to save your current Table List (Blue Box). MemRE will prompt the default location (see File Structure for more info) and give it a default name (table.mre). You can name it whatever you see fit, but you must keep the .mre file extension. Once saved, you can load the tables back up at any time.
- Load Tables
This will load back in a previously saved .mre table to the Table List (Blue Box). When loading a table, all previous entries will be deleted. MemRE does not merge tables yet.
- Save as .CT
By clicking this button, MemRE will convert your current table into a Cheat Engine Table so you can directly use it with Cheat Engine. Same Process applies as in "Save Table" above, but Cheat Engine Tables must keep the file extension of .CT
- Exit
You may have already noticed you cannot exit out of MemRE with the traditional X button at the top of the program. This is because MemRE is injectable and I have some clean up processes attached so you can reinject MemRE in the same process again, cleans up the ScanResults folder, deallocate memory, etc. (honesty: I just needed a filler button)