| View previous topic :: View next topic |
| Author |
Message |
thearing Newbie cheater
Reputation: 0
Joined: 23 Nov 2009 Posts: 11
|
Posted: Wed Dec 02, 2009 3:56 pm Post subject: Help pointer & c++ |
|
|
Hello! I am from Argentina... I have a pointer of Paintall Winows... To edit the score... Look:
So i put in my code c++:
But not work with this address, but if i put the dinamic address, it work.
Can somebody help me? Thanks!
EDIT: I read in the forum that i need a offset... but look:
Have i a offset?
EDIT2: Mod or admin can you edit the images? Add http in the links
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Wed Dec 02, 2009 4:22 pm Post subject: |
|
|
well doesn't appear like your pointer has an offset there so it's not necessary. however it is necessary to dereference 'direccion' by giving it a type DWORD* and then dereferencing that. eg.
| Code: | | DWORD* dynamicAddress = *(DWORD*)0x0x00C1AE9A; |
|
|
| Back to top |
|
 |
thearing Newbie cheater
Reputation: 0
Joined: 23 Nov 2009 Posts: 11
|
Posted: Wed Dec 02, 2009 4:33 pm Post subject: |
|
|
Thanks for reply!
I put:
DWORD* direccion = *(DWORD*)0x00C1AE9A;
const long nuevaPuntuacion=999999;
But:
In function `int WinMain(HINSTANCE__*, HINSTANCE__*, CHAR*, int)':
And
invalid conversion from `long unsigned int' to `DWORD*'
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Wed Dec 02, 2009 4:39 pm Post subject: |
|
|
| delete the initial declaration of direccion
|
|
| Back to top |
|
 |
Cpt.Slow Cheater
Reputation: 0
Joined: 02 Dec 2009 Posts: 28
|
Posted: Wed Dec 02, 2009 4:43 pm Post subject: |
|
|
You'll be changing the data in your own process if you do it like that. Unless this is a DLL.
_________________
Now let's cause some fucking havoc. |
|
| Back to top |
|
 |
thearing Newbie cheater
Reputation: 0
Joined: 23 Nov 2009 Posts: 11
|
Posted: Wed Dec 02, 2009 4:48 pm Post subject: |
|
|
No, look...
| Code: | #include<windows.h>
#include<stdio.h>
int WINAPI WinMain (HINSTANCE hThisInstance,
HINSTANCE hPrevInstance,
LPSTR lpszArgument,
int nFunsterStil)
{
DWORD* direccion = *(DWORD*)0x00C1AE9A;
const long nuevaPuntuacion=999999;
long viejaPuntuacion;
char mensaje[256];
HWND hwnd;
DWORD pid;
HANDLE phandle;
hwnd = FindWindow(NULL, "3D Pinball Windows: cadete espacial");
if(!hwnd)
{
MessageBox(NULL, "No se esta ejecutando Pinball", "Error", MB_OK | MB_ICONERROR);
return -1;
}
GetWindowThreadProcessId(hwnd, &pid);
phandle = OpenProcess(PROCESS_ALL_ACCESS, 0, pid);
if(!phandle)
{
MessageBox(NULL, "Error al obtener el handle del proceso", "Error", MB_OK | MB_ICONERROR);
return -2;
}
ReadProcessMemory(phandle,(LPVOID)direccion,(LPVOID)&viejaPuntuacion,sizeof(viejaPuntuacion),0);
WriteProcessMemory(phandle, (LPVOID)direccion, (LPVOID) &nuevaPuntuacion, sizeof(nuevaPuntuacion), 0);
sprintf(mensaje, "Tu puntuacion ha cambiado de %ld a %ld", viejaPuntuacion, nuevaPuntuacion);
MessageBox(NULL, mensaje, "Listo", MB_OK);
return 0;
} |
but the error is: invalid conversion from `long unsigned int' to `DWORD*'
Thanks for reply!
|
|
| Back to top |
|
 |
hcavolsdsadgadsg I'm a spammer
Reputation: 26
Joined: 11 Jun 2007 Posts: 5801
|
Posted: Wed Dec 02, 2009 5:05 pm Post subject: |
|
|
| Code: | | DWORD* direccion = *(DWORD*)0x00C1AE9A; |
is probably going to blow up in your face if it even somehow compiled.
even if you had it correct, you'd just be reading garbage.
delete this.
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Wed Dec 02, 2009 5:07 pm Post subject: |
|
|
| oh lol my bad thought you were in a dll. okay read the 4 bytes at that address with RPM. that will be a pointer to your dynamic address
|
|
| Back to top |
|
 |
thearing Newbie cheater
Reputation: 0
Joined: 23 Nov 2009 Posts: 11
|
Posted: Wed Dec 02, 2009 5:18 pm Post subject: |
|
|
| I canīt understand.. i am from argentina...There is no problem, already I will find the return.
|
|
| Back to top |
|
 |
Cpt.Slow Cheater
Reputation: 0
Joined: 02 Dec 2009 Posts: 28
|
Posted: Wed Dec 02, 2009 5:29 pm Post subject: |
|
|
Read the value in that address with ReadProcessMemory. Add whatever offset you have to that value and then you have the address to use Read/WriteProcessMemory on.
_________________
Now let's cause some fucking havoc. |
|
| Back to top |
|
 |
thearing Newbie cheater
Reputation: 0
Joined: 23 Nov 2009 Posts: 11
|
Posted: Wed Dec 02, 2009 7:20 pm Post subject: |
|
|
I did!
The error was:
| Code: | | DWORD* direccion = *(DWORD*)0x00C1AE9A; |
And now work:
| Code: | | DWORD* direccion = (DWORD*)0x00C1AEBA; |
Now i have another problem... The dinamic address of a game... Is a IP, this ip connect with the server game. I want edit this ip with writeprocessmemory but i canīt see the pointer becouse the dinamic address (the IP), isenīt change (the value of IP)
Can somebody help me? Thanks!
Sorry for my english i am from argentina.
|
|
| Back to top |
|
 |
NoMercy Master Cheater
Reputation: 1
Joined: 09 Feb 2009 Posts: 289
|
Posted: Thu Dec 03, 2009 1:11 pm Post subject: |
|
|
| Slugsnack wrote: | well doesn't appear like your pointer has an offset there so it's not necessary. however it is necessary to dereference 'direccion' by giving it a type DWORD* and then dereferencing that. eg.
| Code: | | DWORD* dynamicAddress = *(DWORD*)0x0x00C1AE9A; |
|
it could have an offset, it could be hiden.
u could try or the pointer works without an offset by restarting the prgram, if it still has the value u want, its good, otherwise there is an offset which is harder to find,
and u could google for, Readprocessmemory and wirteprocessmemory
|
|
| Back to top |
|
 |
Slugsnack Grandmaster Cheater Supreme
Reputation: 71
Joined: 24 Jan 2007 Posts: 1857
|
Posted: Thu Dec 03, 2009 6:46 pm Post subject: |
|
|
| NoMercy wrote: | | Slugsnack wrote: | well doesn't appear like your pointer has an offset there so it's not necessary. however it is necessary to dereference 'direccion' by giving it a type DWORD* and then dereferencing that. eg.
| Code: | | DWORD* dynamicAddress = *(DWORD*)0x0x00C1AE9A; |
|
it could have an offset, it could be hiden.
u could try or the pointer works without an offset by restarting the prgram, if it still has the value u want, its good, otherwise there is an offset which is harder to find,
and u could google for, Readprocessmemory and wirteprocessmemory |
There is no offset. You can tell from his cheat table
|
|
| Back to top |
|
 |
NoMercy Master Cheater
Reputation: 1
Joined: 09 Feb 2009 Posts: 289
|
Posted: Sat Dec 05, 2009 4:05 am Post subject: |
|
|
| Slugsnack wrote: | | NoMercy wrote: | | Slugsnack wrote: | well doesn't appear like your pointer has an offset there so it's not necessary. however it is necessary to dereference 'direccion' by giving it a type DWORD* and then dereferencing that. eg.
| Code: | | DWORD* dynamicAddress = *(DWORD*)0x0x00C1AE9A; |
|
it could have an offset, it could be hiden.
u could try or the pointer works without an offset by restarting the prgram, if it still has the value u want, its good, otherwise there is an offset which is harder to find,
and u could google for, Readprocessmemory and wirteprocessmemory |
There is no offset. You can tell from his cheat table |
in this case, yes
exuse me
|
|
| Back to top |
|
 |
Dark Byte Site Admin
Reputation: 474
Joined: 09 May 2003 Posts: 25962 Location: The netherlands
|
Posted: Sun Dec 06, 2009 12:49 pm Post subject: |
|
|
mov [eax],ecx can be rewritten as
mov [eax+0000000000000000000000000000000000000000],ecx
I'd say the offset is 0000000000000000000000000000000000000000
so, read the 4 byte value at the given address
apply the offset (0000000000000000000000000000000000000000)
read the address this new value represents
and you have the final address
also,because 0x00C1AE9A isn't shown as green, I doubt it's a static address. But with some luck it'll stay the same.( It's low enough to get the same address each time)
_________________
Tools give you results. Knowledge gives you control.
Like my help? Join me on Patreon so i can keep helping |
|
| Back to top |
|
 |
|