Code for enabling Debug Privs:
Code:
bool EnableDebugPrivilege()
{
TOKEN_PRIVILEGES priv;
HANDLE hThis, hToken;
LUID luid;
hThis = GetCurrentProcess();
OpenProcessToken(hThis, TOKEN_ADJUST_PRIVILEGES, &hToken);
LookupPrivilegeValue(0, TEXT("seDebugPrivilege"), &luid);
priv.PrivilegeCount = 1;
priv.Privileges[0].Luid = luid;
priv.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hToken, false, &priv, 0, 0, 0);
CloseHandle(hToken);
CloseHandle(hThis);
return true;
}
Main function
Code:
#include "movement.h"
#include "memory.h"
HWND hwnd;
DWORD ID;
DWORD rw2=0;
HANDLE handle;
unsigned int playerbase;
int _tmain(int argc, _TCHAR* argv[])
{
//ADRESSE 3.1.1
unsigned adresse = 0x010B65F4;
//Debug Priv
::EnableDebugPrivilege();
//Hwnd and Handle
hwnd = 0;
hwnd = FindWindow(NULL, TEXT("World of Warcraft"));
GetWindowThreadProcessId(hwnd, &ID); // Funktion
handle = OpenProcess(PROCESS_ALL_ACCESS, 0, ID);
//Create objects
movement move(hwnd);
memory mem(handle);
//Playerbase
unsigned int puffer;
ReadProcessMemory(handle, (LPCVOID)adresse, &puffer, sizeof(puffer), &rw2);
puffer = puffer + 0x34;
ReadProcessMemory(handle, (LPCVOID)puffer, &puffer, sizeof(puffer), &rw2);
puffer = puffer + 0x24;
ReadProcessMemory(handle, (LPCVOID)puffer, &playerbase, sizeof(puffer), &rw2);
std::cout<< mem.CurrentHealth(playerbase);
system("Pause");
CloseHandle(handle);
return 0;
}
CurrentHp function
Code:
int CurrentHealth(unsigned int base) {
base = base + 0x8;
int buffer;
ReadProcessMemory(handle2, (LPCVOID)base, &base, sizeof(buffer), &rw);
base = base + 0x17 * 4;
ReadProcessMemory(handle2, (LPCVOID)base, &buffer, sizeof(buffer), &rw);
return buffer;
}
This is nearly the whole code. Do yout see any mistakes?