#ifndef PROCMEM_H
#define PROCMEM_H
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <iostream>
#include <TlHelp32.h>
#include <string>
#include <sstream>
#include <process.h>
class ProcMem
{
protected:
HANDLE hProcess;
DWORD dwPID, dwProtection, dwCaveAddress;
BOOL bPOn, bIOn, bProt;
public:
ProcMem();
~ProcMem();
void RadarHack();
int chSizeOfArray(char* chArray);
int iSizeOfArray(char* iArray);
bool iFind(int* iAry, int iVal);
#pragma region MEMORY FUNCTIONS
template <class cData>
void Protection(DWORD dwAddress)
{
if (!bProt)
VirtualProtectEx(hProcess, (LPVOID)dwAddress, sizeof(cData), PAGE_EXECUTE_READWRITE, &dwProtection);
else
VirtualProtectEx(hProcess, (LPVOID)dwAddress, sizeof(cData), dwProtection, &dwProtection);
bProt = !bProt;
}
template <class cData>
cData Read(DWORD dwAddress)
{
cData cRead;
ReadProcessMemory(hProcess, (LPVOID)dwAddress, &cRead, sizeof(cData), NULL);
return cRead;
}
template <class cData>
cData Read(DWORD dwAddress, char* Offset, BOOL Type)
{
int iSize = iSizeOfArray(Offset) - 1;
dwAddress = Read<DWORD>(dwAddress);
//Store Hex values
for (int i = 0; i < iSize; i++)
dwAddress = Read<DWORD>(dwAddress + Offset[i]);
if (!Type)
return dwAddress + Offset[iSize];
else
return Read<cData>(dwAddress + Offset[iSize]);
}
template <class cData>
void Write(DWORD dwAddress, cData Value)
{
WriteProcessMemory(hProcess, (LPVOID)dwAddress, &Value, sizeof(cData), NULL);
}
template <class cData>
void Write(DWORD dwAddress, char* Offset, cData Value)
{
Write<cData>(Read<cData>(dwAddress, Offset, false), Value);
}
virtual void Process(char* ProcessName);
virtual void Patch(DWORD dwAddress, char* chPatch_Bts, char* chDefault_Bts);
virtual void Inject(DWORD dwAddress, char* chInj_Bts, char* chDef_Bts, BOOL Type);
virtual DWORD AOB_Scan(DWORD dwAddress, DWORD dwEnd, char* chPattern);
virtual DWORD Module(LPSTR ModuleName);
#pragma endregion
};
#endif
{"html5":"htmlmixed","css":"css","javascript":"javascript","php":"php","python":"python","ruby":"ruby","lua":"text\/x-lua","bash":"text\/x-sh","go":"go","c":"text\/x-csrc","cpp":"text\/x-c++src","diff":"diff","latex":"stex","sql":"sql","xml":"xml","apl":"apl","asterisk":"asterisk","c_loadrunner":"text\/x-csrc","c_mac":"text\/x-csrc","coffeescript":"text\/x-coffeescript","csharp":"text\/x-csharp","d":"d","ecmascript":"javascript","erlang":"erlang","groovy":"text\/x-groovy","haskell":"text\/x-haskell","haxe":"text\/x-haxe","html4strict":"htmlmixed","java":"text\/x-java","java5":"text\/x-java","jquery":"javascript","mirc":"mirc","mysql":"sql","ocaml":"text\/x-ocaml","pascal":"text\/x-pascal","perl":"perl","perl6":"perl","plsql":"sql","properties":"text\/x-properties","q":"text\/x-q","scala":"scala","scheme":"text\/x-scheme","tcl":"text\/x-tcl","vb":"text\/x-vb","verilog":"text\/x-verilog","yaml":"text\/x-yaml","z80":"text\/x-z80"}