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