Hey guys i'm new in the forum and i like to share one of my works (this is used to off-line games)
Downloads
First you'll need the
Visual Studio 2010 (or 2008)
And my DLL (with the functions): At the end of post |
Scan
And the
CE 6.1 by
DarkByte Download
Creating the project
After download the VS create a new
Windows Forms Application.
Click in
Save All... (or Ctrl + Shift + S), Press OK, Go to
Documents >
Visual Studio 2010 >
Project >
*Name of your poject* >
*Name of your poject* >
Bin >
Debug And plaste the DLL here
Now lets import the DLL go to:
Project >
Add Reference...
Now Click in
Browse then go to your
Project folder >
Bin >
Debug and Double-Click in
DLL
Start the programming
Double-Click in your Form, now import let's put the DLL in the project:
Now we go to create the function of DLL
Code:
Memorys mem = new Memorys("Your process");
Pointers, Address and CE
First find the address who contains the value of your need, Right click on it and Click on
Pointer Scan for this Address
Now click in
OK, Choose one local to
save the table of Pointers
Selelect one of the
list (Double-Click), and close the
Pointer Scanner
If you click on the address in your
address list you'll se the address's and the offset's of the Adress.
(Take a
picture of this "table" or just let the
CE open to the next step)
Modules, Pointer Calcule and Final Address
Back to the VS, now we can bring this informations to ouer trainer.
Frist on
Form1 Load we will make the address calcule.
If you look very (very) closer will see that one of the values are a
text and not a
Hex, that's because it's a
module and a
module has a
Base Address
(in my case "
minesweeper.exe" + 000824AC)
To calcule this base address we will use the first function of my DLL
Code:
uint base_address = mem.baseaddress("minesweeper.exe");
(
uint its the
variable type,
base_address it's the
name of variable ,
mem.baseaddress it's the
function and
minesweeper.exe it's the
name of module)
But in the CE it's "minesweeper.exe" +
000824AC, well now we need to add this value to the
base_address, like this:
Don't forget of the
0x before the value.
Now we got the base address of the module, now we will set the
offset's
When we found the
pointer did you noticed of a
second colun who contais
small numbers?
Put their in
order like in my code:
Another pic to help you
Code:
uint base_address = mem.baseaddress("minesweeper.exe");
base_address = base_address + 0x000824AC;
uint address = (uint)mem.ReadPointer(base_address) + 0x6a4;
address = (uint)mem.ReadPointer(address) + 0x4b4;
address = (uint)mem.ReadPointer(address) + 0x98;
address = (uint)mem.ReadPointer(address) + 0x94;
address = (uint)mem.ReadPointer(address) + 0x4;
You can see if you calc is
correct whth:
Code:
MessageBox.Show(address.ToString("x"));
The X transforms to
Hex, now just
compare to the CE
Writing and Reading the Address
To Write:
Code:
mem.Write(address, 10);
The "10" it's the new value (just
int)
To Read:
Code:
mem.ReadPointer(address);
Retrun int but you can use:
Code:
mem.ReadPointer(address).ToString();
To write in a label or wathaver
And to read a string:
Code:
mem.ReadString(address).ToString();
That's all guys i hope you like and help whith your's hack's.
Credits:
brhvitor6