ver 5.3.0_17128
I cant understand why this is not working I just keep getting garbage even trying to read the formatted text its just blank
header.h
Code:
#include <Windows.h>
#include <math.h>
#include <string>
#include <tlhelp32.h>
#include <iostream>
using namespace std;
typedef unsigned int uint;
void ReadProcMem(void *pAddress, void *pMem, int iSize);
void WriteProcMem(void *pAddress, void *pMem, int iSize);
unsigned long GetPid(char *procName);
DWORD GetBase(char* DllName, DWORD tPid);
void Test();
main.cpp
Code:
#include "header.h"
DWORD Pid;
uint BaseAddress;
uint ChatBuffer;
enum CBuffer
{
Chat_Base = 0xCDE728,
Chat_Ptr1 = 0x17C8,
Chat_Ptr2 = 0x45,
};
int main(int argc, char* argv[])
{
Pid = GetPid("Wow.exe");
BaseAddress = GetBase("Wow.exe",Pid);
while(1)
{
Test();
Sleep(50);
}
return 0;
}
void Test()
{
for (uint i = 0; i < 60; i++)
{
char chat[260];
ChatBuffer = Chat_Base + (i*Chat_Ptr1) + Chat_Ptr2 ;
ReadProcMem((LPVOID)(BaseAddress + ChatBuffer),&chat,256);
cout << chat << endl;
}
system("pause");
}
void ReadProcMem(void *pAddress, void *pMem, int iSize)
{
HANDLE hProc = OpenProcess(PROCESS_VM_OPERATION|PROCESS_VM_WRITE|PROCESS_VM_READ, FALSE, Pid);
DWORD dwOld;
VirtualProtectEx(hProc, pAddress, iSize, PAGE_EXECUTE_READWRITE, &dwOld);
ReadProcessMemory(hProc, pAddress, pMem, iSize, 0);
CloseHandle(hProc);
}
void WriteProcMem(void *pAddress, void *pMem, int iSize)
{
HANDLE hProc = OpenProcess(PROCESS_ALL_ACCESS, FALSE, Pid);
DWORD dwOld;
VirtualProtectEx(hProc, pAddress, iSize, PAGE_EXECUTE_READWRITE, &dwOld);
WriteProcessMemory(hProc, pAddress, pMem, iSize, 0);
CloseHandle(hProc);
}
unsigned long GetPid(char *procName)
{
PROCESSENTRY32 pe;
HANDLE thSnapshot;
BOOL retval, ProcFound = false;
thSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0);
if(thSnapshot == INVALID_HANDLE_VALUE)
{
return false;
}
pe.dwSize = sizeof(PROCESSENTRY32);
retval = Process32First(thSnapshot, &pe);
while(retval)
{
if(strcmp(pe.szExeFile, procName)==0 )
{
ProcFound = true;
break;
}
retval = Process32Next(thSnapshot,&pe);
pe.dwSize = sizeof(PROCESSENTRY32);
}
if (!ProcFound) return 0;
return pe.th32ProcessID;
}
DWORD GetBase(char* DllName, DWORD tPid)
{
HANDLE snapMod;
MODULEENTRY32 me32;
if (tPid == 0) return 0;
snapMod = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, tPid);
me32.dwSize = sizeof(MODULEENTRY32);
if (Module32First(snapMod, &me32))
{
do{
if (strcmp(DllName, me32.szModule) == 0)
{
CloseHandle(snapMod);
return (DWORD) me32.modBaseAddr;
}
}while(Module32Next(snapMod,&me32));
}
CloseHandle(snapMod);
return 0;
}
ok fixed, it was Chat_Ptr2 address that was the problem