findpattern help
Author |
Message |
zerocoolminja
|
Posted: Wed Aug 03, 2011 8:26 am Post subject: findpattern help |
|
|
I want to build extended find pattern for modern warfare 2 for finding offsets... I have this code and "variable"_t make me a problem...I do not know how to make the prints as clientinfo, CG, CGS and centity every time I start the program... refdef is static,does not change... clientinfo,cg,cgs and centity is change every time I start play...can anyone help me... :/
#include <d3d9.h>
#include <d3dx9.h>
#include <stdio.h>
#include <math.h>
HANDLE iw4mp = GetCurrentProcess();
int centity_addy = -1;
int clientinfo_addy = -1;
int cg_addy = -1;
int cgs_addy = -1;
clientinfo_t * clientinfo; // = (clientinfo_t*) 0x8EB248;
centity_t * cg_entities; // = (centity_t*) 0x8F7A78;
refdef_t * refdef = (refdef_t*) 0x85EFB0;
cg_t * cg; // = (cg_t*) 0x7F493C;
cgs_t * cgs; // = (cgs_t*) 0x7F0C78;
bool ReadaIW()
{
//get clientinfo address
int tmppat = FindPattern(0x0042A000, 0x2000, "\x69\xC9\x2C\x05\x00\x00\x56\x8B\xB1", "XXXXXXXXX");
if (tmppat == -1) { return false; }
ReadProcessMemory(iw4mp, (PVOID)tmppat, &clientinfo_addy, 4, NULL);
if (clientinfo_addy == -1) { return false; }
clientinfo = (clientinfo_t*) clientinfo_addy-0x1C;
//get cgs address
tmppat = FindPattern(0x004C4000, 0x2000, "\x68\xA4\x3B\x00\x00\x33\xFF\x57\x68", "XXXXXXXXX");
if (tmppat == -1) { return false; }
ReadProcessMemory(iw4mp, (PVOID)tmppat, &cgs_addy, 4, NULL);
if (cgs_addy == -1) { return false; }
cgs = (cgs_t*) cgs_addy;
//get cg address
tmppat = FindPattern(0x004C4000, 0x2000, "\x68\x30\xD7\x0F\x00\x57\x68", "XXXXXXX");
if (tmppat == -1) { return false; }
ReadProcessMemory(iw4mp, (PVOID)tmppat, &cg_addy, 4, NULL);
if (cg_addy == -1) { return false; }
cg = (cg_t*) cg_addy;
//get centity address
tmppat = FindPattern(0x004C4000, 0x2000, "\x68\x00\x20\x10\x00\x81\xC1", "xxxxxxx");
if (tmppat == -1) { return false; }
ReadProcessMemory(iw4mp, (PVOID)tmppat, ¢ity_addy, 4, NULL);
if (centity_addy == -1) { return false; }
cg_entities = (centity_t*) centity_addy;
return true;
}
int FindPattern(int start_offset, int size, const char * pattern, const char * mask)
{
int pos = 0;
for (int retAddress = start_offset; retAddress < start_offset + size; retAddress++)
{
if (*(const char*)retAddress == pattern[pos] || mask[pos] == '?')
{
if (mask[pos+1] == '\0')
return retAddress+1;
pos++;
}
else
pos = 0;
}
return -1;
} |
|
|
|
|
|
Sponsor Sponsor
|
|
|
|
|