[Source Code] Addy Update
Code:
#define ADDR_WALLHACK 0x73C3EC
#define ADDR_SEEGHOST 0x73C400
#define ADDR_WEAPONMGR 0x12477AC
#define ADDR_PLAYERMGR 0x1179AE0
#define ADDR_LTCLIENTSHELL 0x7515B8
#define ADDR_PLAYERSTART 0x752C
#define ADDR_MEOFFSET 0x7534
#define ADDR_PLAYERSIZE 0x7F0
#define ADDR_MODELMGR 0x12476FC
#define ADDR_PLAYERPTR 0x768720
Memory
class Memory{
private:
unsigned int base;
unsigned int pid;
public:
HANDLE hwow;
template <class T>
T read (DWORD addr) {
T result;
DWORD old;
ReadProcessMemory(hwow,reinterpret_cast<LPCVOID>(addr),&result,sizeof(T),NULL);
return (result);
}
template <class T>
void write (DWORD addr, T Value) {
DWORD old;
VirtualProtectEx(hwow,reinterpret_cast<LPVOID>(addr),sizeof(T),PAGE_EXECUTE_READWRITE,&old);
WriteProcessMemory(hwow,reinterpret_cast<LPVOID>(addr),&Value,sizeof(T),NULL);
VirtualProtectEx(hwow,reinterpret_cast<LPVOID>(addr),sizeof(T),old,&old);
}
bool init(char * name){
HANDLE hsnap=NULL;
PROCESSENTRY32 pe;
MODULEENTRY32 me;
pe.dwSize=sizeof(pe);
me.dwSize=sizeof(me);
bool flag=0;
BYTE buffer=0;
hsnap=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,NULL);
Process32First(hsnap,&pe);
while(Process32Next(hsnap,&pe))
{
if(!strcmp(name,pe.szExeFile))
{
if(hwow) CloseHandle(hwow);
hwow=OpenProcess(PROCESS_ALL_ACCESS,FALSE,pe.th32ProcessID);
pid=pe.th32ProcessID;
CloseHandle(hsnap);
hsnap=CreateToolhelp32Snapshot(TH32CS_SNAPMODULE,pe.th32ProcessID);
Module32First(hsnap,&me);
base=(unsigned int)me.modBaseAddr;
CloseHandle(hsnap);
flag=1;
break;
}
}
if(!flag)
{
CloseHandle(hsnap);
return false;
}
CalcBase(pid);
}
void CalcBase(unsigned int UserSelectedPid)
{
MODULEENTRY32 me32;
HANDLE hProcessSnap;
me32.dwSize=sizeof(me32);
hProcessSnap = CreateToolhelp32Snapshot(0x8,UserSelectedPid);
Module32First(hProcessSnap,&me32);
base=(unsigned int)me32.modBaseAddr;
CloseHandle( hProcessSnap );
}
DWORD BaseAddress(){
return base;
}
};
Exemplo Como usar:
Code:
//.....
Memory *memory;
//.....
DWORD GetWallhack()
{
DWORD Wallhack;
GameAddress = memory.read<DWORD>(ADDR_WALLHACK + memory.BaseAddress());
return Wallhack;
}
//.....
void ThreadFunctions (LPVOID)
{
DWORD pWallhack = memory.read<DWORD >(GetWallhack());
if(pWallhack != NULL)
*(DWORD*)(pWallhack ) = -16777217;
}
//.....
memory.init("crossfire.exe");