
DWORD base = FindPattern(pShell, 0xFFFFFF, "\xB9\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x68\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x59\xC3\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\xCC\x6A\x04\x68\x00\x00\x00\x00\x68\x00\x00\x00\x00\xB9\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x68\x00\x00\x00\x00\xE8\x00\x00\x00\x00\x59\xC3", "x????x????x????x????xxxxxxxxxxxxxxx????x????x????x????x????x????xx");
if (base)
{
DWORD offset = *(DWORD*)(base+0x28); //offset = 0x1044D790
}
?void SearchPatterns(void)
{
while (!IsGameReadyForHook())
{
Sleep(1000);
}
while(true)
{
dwCShellEntryPoint = (DWORD)GetModuleHandleA( "CShell.dll" );
dwCShellCodeSize = GetSizeofCode( "CShell.dll" );
dwCShellCodeOffset = OffsetToCode( "CShell.dll" );
DWORD Offset = FindPattern(dwCShellEntryPoint, dwCShellCodeSize, (PBYTE)"\x3D\x00\x00\x00\x00\x7C\xEE\x8B\x0D\x00\x00\x00\x00", "x????xxxx????");
if(Offset)
{
Offset = *(PDWORD)(Offset+0x1);
Writelog("#define Offset 0x%X",Offset-dwCShellEntryPoint);
}
ExitProcess(0);
}
}

Tks me if it can help you