How would I find the Player Base Address in C++? I know how to read and write memory in C++, and I've been googling it for a few hours and haven't found anything.
How would I find the Player Base Address in C++? I know how to read and write memory in C++, and I've been googling it for a few hours and haven't found anything.
Hello! Here is some Code:
this are all functions you need to read playerbase... and much more!Code:DWORD Addr,value; HWND Wow = FindWindow(NULL,"World of Warcraft"); DWORD Pid; GetWindowThreadProcessId(Wow,&Pid); HANDLE WowHandle = OpenProcess(PROCESS_ALL_ACCESS,0,Pid); ReadProcessMemory(WowHandle,(LPVOID)Addr,&value,sizeof(int),0);
I know that, but how would I find it as a specific memory address. Doesn't it change whenever you restart the game?
Heres the part of my source that I need it for:
Code:LPVOID playerbase = ; // i need the playerbase address right here LPVOID address = GetModuleHandle("Wow.exe") + playerbase + 0x1855E2; DWORD datasize = sizeof( percent ); // get the size of the new value (WriteProcessMemory(hProcess, (LPVOID) address, &percent, datasize, NULL)); // write the new speed
Last edited by l0l1dk; 12-05-2010 at 02:03 PM.
o.O Playerbase is a Multilevel Pointer. That means you have to read an address that points to annother addres. This looks like this:
fisrt = Read(PlayerbaseStatic)
secondlevel = Read(first+offset)
threadlevel = Read(secondlevel+offset2)
...
The playerbase Pointer is at an Level 3 Pointer. So you have to read 3 Times to get the Right address!
The playerbase change every new patch that modifies the wow.exe.
I can get the offsets and PlayerBaseStatic from IDA right?
Yes but you can also use Cheat Engine. Or have a look at
http://www.mmowned.com/forums/world-...mp-thread.html
or you can use this :P
DWORD PlayerBaseStatic = 0x924720;
DWORD Offset1 = 0x38;
DWORD Offset2 = 0x24;
Heres the part of the source that's not working now:
It's not writing to the memory address now. It's not giving errors, its just not doing anything.Code:DWORD PlayerBaseStatic = 0x924720; DWORD Offset1 = 0x38; DWORD Offset2 = 0x24; DWORD playerbase = PlayerBaseStatic + Offset1 + Offset2; LPVOID address = GetModuleHandle("Wow.exe") + playerbase + 0x1855E2; DWORD datasize = sizeof( percent ); // get the size of the new value Writ ProcessMemory(hProcess, (LPVOID) address, &percent, datasize, NULL); // write the new speed
Last edited by l0l1dk; 12-05-2010 at 03:12 PM.
might want to actually learn c++ before you try and start hacking.. just a tip
I know C++, just new to memory editing.
I did think of that, but only after I posted.
Did you think about the fact that hamburger said it was a multi level pointer?
If it was as simple as
DWORD playerbase = PlayerBaseStatic + Offset1 + Offset2;
don't you think he would have just said "read 0x92477C"?
Oh, and why are you even using WriteProcessMem to begin with since you're injected? (Or have no clue what GetModuleHandle() does). Just use pointers..
yes, yes, and yes, I know what GetModuleHandle does
Then I fail to see what the problem is.. This may sound harsh, but if you can't figure out what to do from all the information that's been given to you in this thread then maybe you don't know C as well as you think you do.
I'm working on it. When I try to read or write it says the memory is inaccessable. I'm probably doing something wrong with the pointers. I haven't used multi-level pointers before.
Last edited by l0l1dk; 12-05-2010 at 06:36 PM.