Member
2.4.3 Object Manager Help
Hello!
I've been searching around the forums regarding Object manager but couldn't find what I'm looking for.
So I've recently started reverse engineering and working my way up and thought I'll try WoW 2.4.3.
So I've managed to get the guid of my character and correctly shows on my console.
I just cannot figure out how to get the object base: So I can access my characters health etc..
This is my current code:
#include <Windows.h> #include <iostream> #include <string> #include <vector> - Pastebin.com
Please excuse for the bad coding as I'm trying various cheap hack methods to get this part working.
Code:
int GetObjectBaseByGuid(long long int* Guid)
{
TempObject->BaseAddress = nextObject;
while (*TempObject->BaseAddress != 0)
{
TempObject->Guid = (long long int*)(*TempObject->BaseAddress + 0x30);
if (TempObject->Guid == Guid)
return *TempObject->BaseAddress;
TempObject->BaseAddress = (int*)(TempObject->BaseAddress + 0x3C);
}
}
This is causing a WoW crash. I've looked at other sources and tryed to replicate it but with no luck.
If someone could guide me or show me the correct working way of how to get the Object manager base then, that would be great!
Thank you!
Hello, only reading memory should not cause your client to crash.
You can use OpenProcess to get WoW handle from PID, then use ReadProcessMemory with this handle to get memory value.
WoW TGC Loot & WoW Items
Selling EU & US WoW Gold
Buying EU & US WoW Gold
@vegoo it's internal...
@Quadral try,
Code:
while (*TempObject->BaseAddress != NULL && (*TempObject->BaseAddress & 1) == NULL)
Attach VS as a debugger, works just fine for debugging injected dlls
Also, could be something related to nextObject. Looks like you're using some global value...
Last edited by DarkLinux; 03-25-2018 at 10:33 PM .
Member
Attached Thumbnails
Contributor
Originally Posted by
Quadral
...
Please excuse for the bad coding as I'm trying various cheap hack methods to get this part working.
...
You are excused. I suppose c++ isn't your mother's language :P (But have you really need to use "long long int*"? Is this a bad creepy joke?)
Cutting the crap: Getting a pointer by guid needs just to call the function @0046B4E0 (see the code below):
Code:
inline auto GetAddrByGUID(long long guid) { return ((int(__cdecl*)(long long))0x0046B4E0)(guid); }
Or, if you need enumeration - take a look on ClntObjMgrEnumObjects .
Last edited by tutrakan; 03-27-2018 at 01:58 AM .
Member
Post Thanks / Like - 1 Thanks
Corthezz (1 members gave Thanks to Quadral for this useful post)
Banned
Originally Posted by
tutrakan
...This is just the beginning ...
Of all your accounts getting banned - dont give into the dark side.
Contributor
Originally Posted by
WiNiFiX
Of all your accounts getting banned
- dont give into the dark side.
I didn't get that. What do you mean?
Originally Posted by
tutrakan
I didn't get that. What do you mean?
Ignore WiNiFiX, he has a hard-on for external bots despite them not guaranteeing any more safety than internal bots.