byte[] pattern = {
0x53, 0x8B, 0xDC, 0x83, 0xEC, 0x08, 0x83, 0xE4,
0xF0, 0x83, 0xC4, 0x04, 0x55, 0x8B, 0x6B, 0x04,
0x89, 0x6C, 0x24, 0x04, 0x8B, 0xEC, 0xA1, 0x00,
0x00, 0x00, 0x00, 0x81, 0xEC, 0x98, 0x03, 0x00,
0x00
};
address = FindAddress(pattern, 0, "xxxxxxxxxxxxxxxxxxxxxxx????xxxxxx", dllClientAddress, dllClientSize);
if(address == 0)
{
Program.PrintError("Could not find VMatrices! (nullpointer)");
offsets.Add("[VMatrices nullptr]", string.Empty);
return;
}
address = ReadInt32(scanner.Process.Handle, address + 0x4EE);
address -= dllClientAddress;
address += 0x80;
PrintAddress("ViewMatrix1", address);
PrintAddress("ViewMatrix2", address + 0x110); //VMatrix2 and 3 got a fixed distance to VMatrix1 - Simply add the distances to the address.
PrintAddress("ViewMatrix3", address + 0x420);
DumpPatternOffset( "EngineRender", "m_dwViewMatrix", pClient,
reinterpret_cast< unsigned char* >( "\x81\xC6\x00\x00\x00\x00\x88\x45\x92\x0F\xB6\xC0" ),
"xx????xxxxxx",
Remote::SignatureType::READIT | Remote::SignatureType::SUBTRACT, 0x33C, 0xB0, ss );