int main(int argc, char* argv[])
{
setlocale(LC_CTYPE,NULL);
AddDebugPrivileges();
DWORD dwProcid;
DWORD dwObjMgr;
HWND hWnd=FindWindow(NULL,"World of Warcraft");
GetWindowThreadProcessId(hWnd,&dwProcid);
HANDLE hProc = OpenProcess( PROCESS_ALL_ACCESS, false, dwProcid );
ReadProcessMemory( hProc, (LPVOID)(0x125A590), (LPVOID)&dwObjMgr, 4, NULL );
ReadProcessMemory( hProc, (LPVOID)(dwObjMgr + 0x2D8C), (LPVOID)&dwObjMgr, 4, NULL );
if ( dwObjMgr == NULL )
{
printf("ObjectManager not found!\r\n");
return 0;
}
DWORD dwFirstObject, dwCurObject, dwBytesRead;
ReadProcessMemory( hProc, (LPVOID)(dwObjMgr + 0xAC), (LPVOID)&dwFirstObject, 4, NULL );
dwCurObject = dwFirstObject;
while ( dwCurObject && (dwCurObject&1) == 0 )
{
DWORD nm;
char name[100]="";
unsigned __int64 ObjGuid;
ReadProcessMemory( hProc, (LPVOID)(dwCurObject + 0x30), (LPVOID)&ObjGuid, 8, &dwBytesRead );
float X, Y, Z;
ReadProcessMemory( hProc, (LPVOID)(dwCurObject + 0x7D4),(LPVOID)&X, 4, &dwBytesRead );
ReadProcessMemory( hProc, (LPVOID)(dwCurObject + 0x7D

,(LPVOID)&Y, 4, &dwBytesRead );
ReadProcessMemory( hProc, (LPVOID)(dwCurObject + 0x7DC),(LPVOID)&Z, 4, &dwBytesRead );
ReadProcessMemory( hProc, (LPVOID)(dwCurObject + 0x96

,(LPVOID)&nm, 4, NULL );
ReadProcessMemory( hProc, (LPVOID)(nm + 0x5C),(LPVOID)&nm, 4, NULL );
ReadProcessMemory( hProc, (LPVOID)(nm),(LPVOID)&name[0], 100*sizeof(char), NULL );
printf ("GUID: %016I64X \t%f\t%f\t%f\t%s",ObjGuid,X,Y,Z,Utf8ToAnsi(&name[0]));
dwFirstObject = dwCurObject;
ReadProcessMemory( hProc, (LPVOID)(dwFirstObject + 0x3C),(LPVOID)&dwCurObject, 4, NULL );
if ( dwCurObject == dwFirstObject )
break;
}
return 0;
}