-
Notifications
You must be signed in to change notification settings - Fork 4
Pointer Scanning
The pointer scanner window can be found in the Tools menu.

At the moment, the pointer scanner can only search for a target address, which is the Search Address field in the setup tab.
First make sure you're connected to the console via the xbdm connection.
The easiest way to memory dump the game is to open the module explorer (in the Tools menu), select the game on the left (usually called default.xex), then click the Memory Dump button on the top-right side. You'll see in the engine window's status bar it'll show the progress of the dump.
Note
This button is not in the latest release, you'll need to compile from sources
Alternatively you can go to File > Memory Dump, and specify the module's Base Address and Module Size.
Note down the Base Address field of the game, which is in the Addressing and sizes panel. For example, I'm testing this using black ops 1, so this value is 82000000.
- Click
Open Memory File...and select the memory dump file. - It will ask if the data is little endian, so click
No(assuming you're using xbox 360). - It will ask for the base address, paste in the value from the module explorer (
82000000in my case)
In the Setup tab is all of the options. Once a pointer map is loaded, you don't need to touch Addressable Base or Addressable Length.
-
Max Depthmaximum number of offsets a pointer chain can have (e.g. when4,820060CC->FF->2CC->565->8F8is discoverable, since it has no more than 4 offsets). -
Minimum Offsetsmallest offset value allowed. This is used to mitigate extremely long scans caused, I think, by linked lists whose nodes' next node pointer is at offset0. By default, this value is4, however, this presents another issue: a pointer that points to another pointer will not be discoverable.Set this value to
0if you're not finding anything. -
There are two maximum offsets (which are the maximum allowed offset from a base address, e.g., when
0x4000, the pointer82006000->40FF->2FCwill not be found).The
<2ideally should be equal or larger than the>= 2field, the general idea being, a small struct won't point to a huge struct, but this isn't always the case, which is why these two fields have the same default value of0x4000 -
Search Addressis the actual address you want to search for, e.g. the ammo count in a game. -
Alignmentis the size of a pointer. You shouldn't necessarily need to change this.
Once all options are configured, click Run Scan.
Depending on the size of the game and, mainly, the Max Depth, the scan could take between a few milliseconds and a few decades.
For Black Ops 1, scanning for the static address of player 1's X position (8303A62C) yields me quite a few results in a few seconds

Note
Double-click the results to open a dialog, which shows the pointer chain and resolved addresses, all of which can be copied and pasted.
These pointer chains can then be copied into the address of a saved address back in the engine window.
-
Home
- Connect to a console
- Scanning Options
- Scan results & Saved Address Table
- Remote Commands
- Memory Dump
- Tools
- Preferences/App Settings
-
API
- Making a custom connection
- Busy Tokens
- Models, ViewStates, MVP & Binding
- Plugins
- Config Pages
- Brushes and Icons
- Data Manager, Context Data and Data Keys
- Commands and Shortcuts
- Context Menus
- Windows and Dialogs