Just some fresh patterns found with OllyDbg / Sigmaker (took addys from different posts @Pointer & Offsets to find it).
Code:
bool Match(const BYTE* pData, const BYTE* bMask, const char* szMask)
{
for(;*szMask;++szMask,++pData,++bMask)
if(*szMask=='x' && *pData!=*bMask )
return false;
return (*szMask) == NULL;
}
DWORD FindPattern(DWORD dwAddress,DWORD dwLen,BYTE *bMask,char * szMask, bool doExtract, int offset)
{
for(DWORD i=0; i < dwLen; i++)
if( Match( (BYTE*)( dwAddress+i ),bMask,szMask) )
if(doExtract)
return *(DWORD*)(dwAddress+i+offset);
else
return (DWORD)(dwAddress+i+offset);
return 0;
}
void makeAddressLog(char* mName, unsigned char* Pattern, char* Mask, bool doExtract = false, int offset = 0)
{
char iBuf[255];
sprintf(iBuf, "#define %s 0x%08X\n", mName, FindPattern(0x00400000, 0x00986000, Pattern, Mask, doExtract, offset));
add_log(iBuf);
}
// somewhere in your logging thread
makeAddressLog("ptrPlayer", (unsigned char*)"\x8B\x0D\x00\x00\x00\x00\x33\xC0\x66\x89\x81\xA0\x01\x01\x00\x5E", "xx????xxxxxxxxxx", true, 2);
makeAddressLog("ptrServer", (unsigned char*)"\xA1\x00\x00\x00\x00\x3B\xC3\x74\x1A\x38\x98\x38\x09\x0E\x00", "x????xxxxxxxxxx", true, 1);
makeAddressLog("ptrBase", (unsigned char*)"\x81\xC6\x00\x00\x00\x00\x2B\xC2\x66\x89\x8E\xC8\x1B\x00\x00\x33\xC9", "xx????xxxxxxxxxxx", true, 2);
makeAddressLog("adrSpeed", (unsigned char*)"\xDC\x0D\x00\x00\x00\x00\x59\x59\xD9\x5D\x08\x5E", "xx????xxxxxx", true, 2);
makeAddressLog("adrCqcProne", (unsigned char*)"\x83\x3D\x00\x00\x00\x00\x00\x74\x0A\x6A\x03\x8B\x46\x0C\xE8\x00\x00\x00\x00", "xx?????xxxxxxxx????", true, 2);
makeAddressLog("ofsInvisible", (unsigned char*)"\x8B\x87\x00\x00\x00\x00\x89\x06\x8B\x87\x00\x00\x00\x00\x89\x46\x08", "xx????xxxx????xxx", true, 2);
makeAddressLog("szGlobalPlayer", (unsigned char*)"\x69\xDB\x00\x00\x00\x00\x8B\x00\x8B\x40\x58\x3B\x83\x00\x00\x00\x00", "xx????xxxxxxx????", true, 2);
makeAddressLog("adrWeapon1", (unsigned char*)"\x0F\xBF\x86\x00\x00\x00\x00\x83\xC4\x10\xE8\x00\x00\x00\x00\x50\x8B\xCA", "xxx????xxxx????xxx", true, 3);
makeAddressLog("adrWeapon2", (unsigned char*)"\x0F\xB7\x8E\x00\x00\x00\x00\x51\xE8\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00", "xxx????xx????xx????", true, 3);
makeAddressLog("adrWeapon3", (unsigned char*)"\x0F\xBF\x87\x00\x00\x00\x00\x8B\x0D\x00\x00\x00\x00\x6B\xC0\x34\x0F\xB7\x84\x08\x80\xFF\x0C\x00", "xxx????xx????xxxxxxxxxxx", true, 3);
makeAddressLog("adrD3DUsername", (unsigned char*)"\x05\x00\x00\x00\x00\x50\x68\x00\x00\x00\x00\xBF\x00\x00\x00\x00\x57\xFF\x15\x00\x00\x00\x00", "x????xx????x????xxx????", true, 1);
makeAddressLog("adrD3DHealth", (unsigned char*)"\xDB\x83\x00\x00\x00\x00\xDA\xB3\x00\x00\x00\x00\xD9\x5D\x08\xD9\x45\x08", "xx????xx????xxxxxx", true, 2);
makeAddressLog("adrSpawnTime", (unsigned char*)"\x8B\x0D\x00\x00\x00\x00\x69\xC9\x00\x00\x00\x00\x85\xC0", "xx????xx????xx", true, 2);
makeAddressLog("adrFallDamage", (unsigned char*)"\x8D\x8F\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x6A\x00\x6A\x09", "xx????x????xxxx", true, 2);
makeAddressLog("adrFireDelay", (unsigned char*)"\x8D\x86\x00\x00\x00\x00\x50\x51\xD9\x1C\x24\xE8\x00\x00\x00\x00", "xx????xxxxxx????", true, 2);
makeAddressLog("adrUnlimitedAmmo", (unsigned char*)"\xA1\x00\x00\x00\x00\xFF\x70\x30\x8B\xC6\xE8\x00\x00\x00\x00", "x????xxxxxx????", true, 1);
makeAddressLog("ofsPremium1", (unsigned char*)"\x8B\x94\x24\x00\x00\x00\x00\x8B\x8C\x24\x00\x00\x00\x00\x03\xD3\x41\x3B\xCD\x0F\x8C\x00\x00\x00\x00", "xxx????xxx????xxxxxxx????", true, 3);
makeAddressLog("ofsPremium2", (unsigned char*)"\x50\x8D\x84\x24\x00\x00\x00\x00\x50\xFF\x15\x00\x00\x00\x00\x8B\xD8\xE9\x00\x00\x00\x00", "xxxx????xxx????xxx????", true, 4);
makeAddressLog("fWRNoDetection", (unsigned char*)"\x55\x81\xEC\x00\x00\x00\x00\x8D\x6C\x24\xFC\xA1\x00\x00\x00\x00\x33\xC5", "xxx????xxxxx????xx");
makeAddressLog("fWRHSCallback", (unsigned char*)"\x57\xE8\x00\x00\x00\x00\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x8B\xF8\x85\xFF\x0F\x84\x00\x00\x00\x00\xB8\x00\x00\x00\x00\x3B\xF8", "xx????x????x????x????x????x????x????x????xxxxxx????x????xx");
makeAddressLog("fWRHSHandler", (unsigned char*)"\x68\x00\x00\x00\x00\xBA\x20\x7A\x00\x00\x8B\xC6\xE8\x00\x00\x00\x00", "x????xxx??xxx????", true, 1);
makeAddressLog("fEngineText", (unsigned char*)"\x6A\x04\xB8\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x8B\xF1\x89\x75\xF0", "xxx????x????xxxxx");