Всем приват друзья, с вами новый кодер Fulex, сливаю обход (глобал)
Сразу говорю ставьте сябки и :thumbs:
DWORD HookAddr, GetAddr;
void GetAddressGlobalEnvironment()
{
char patRenderContext[] = "\xA1\xA0\x0F\xE3\x01\x85\xC0\x74"; //A1 ?? ?? ?? ?? 85 C0 74 ?? 83 ?? ?? 00 74 ?? 8B
char maskRenderContext[] = "x????xxx";
GetAddr = FindPattern(patRenderContext, maskRenderContext); // адрес в котором передается адрес глобала
DWORD byte1;
ReadProcessMemory(GetCurrentProcess(),(void*)(GetAddr + 0x1), &byte1, sizeof(byte1), 0);
HookAddr = byte1;
}
SSystemGlobalEnvironment* GetSSystemGlobalEnvironment()
{
if(HookAddr == NULL)
{
GetAddressGlobalEnvironment();
//return NULL;
}
if(HookAddr == NULL) MessageBoxA(0, "Global address not found", "", 0);
DWORD A_SSystemGlobalEnvironment = *(DWORD*)HookAddr;
SSystemGlobalEnvironment* m_SSystemGlobalEnvironment = NULL;
if (A_SSystemGlobalEnvironment)
m_SSystemGlobalEnvironment = (SSystemGlobalEnvironment*) (A_SSystemGlobalEnvironment);
return m_SSystemGlobalEnvironment;
}
class SSystemGlobalEnvironment
{
public:
char _0x0000[28];
IEntitySystem* pEntitySystem; //0x001C
char _0x0020[76];
IRenderer* pIRenderer; //0x006C
char _0x0070[24];
IGame* GetIGame; //0x0088
char _0x008C[4];
IPhysicalWorld* pPhysicalWorld; //0x0090
};
SSystemGlobalEnvironment* GetSSystemGlobalEnvironment()
{
DWORD A_SSystemGlobalEnvironment = *(DWORD*)0x164C548;
SSystemGlobalEnvironment* m_SSystemGlobalEnvironment = NULL;
if (A_SSystemGlobalEnvironment)
m_SSystemGlobalEnvironment = (SSystemGlobalEnvironment*)(A_SSystemGlobalEnvironment);
return m_SSystemGlobalEnvironment;
}
Сразу говорю ставьте сябки и :thumbs:
DWORD HookAddr, GetAddr;
void GetAddressGlobalEnvironment()
{
char patRenderContext[] = "\xA1\xA0\x0F\xE3\x01\x85\xC0\x74"; //A1 ?? ?? ?? ?? 85 C0 74 ?? 83 ?? ?? 00 74 ?? 8B
char maskRenderContext[] = "x????xxx";
GetAddr = FindPattern(patRenderContext, maskRenderContext); // адрес в котором передается адрес глобала
DWORD byte1;
ReadProcessMemory(GetCurrentProcess(),(void*)(GetAddr + 0x1), &byte1, sizeof(byte1), 0);
HookAddr = byte1;
}
SSystemGlobalEnvironment* GetSSystemGlobalEnvironment()
{
if(HookAddr == NULL)
{
GetAddressGlobalEnvironment();
//return NULL;
}
if(HookAddr == NULL) MessageBoxA(0, "Global address not found", "", 0);
DWORD A_SSystemGlobalEnvironment = *(DWORD*)HookAddr;
SSystemGlobalEnvironment* m_SSystemGlobalEnvironment = NULL;
if (A_SSystemGlobalEnvironment)
m_SSystemGlobalEnvironment = (SSystemGlobalEnvironment*) (A_SSystemGlobalEnvironment);
return m_SSystemGlobalEnvironment;
}
class SSystemGlobalEnvironment
{
public:
char _0x0000[28];
IEntitySystem* pEntitySystem; //0x001C
char _0x0020[76];
IRenderer* pIRenderer; //0x006C
char _0x0070[24];
IGame* GetIGame; //0x0088
char _0x008C[4];
IPhysicalWorld* pPhysicalWorld; //0x0090
};
SSystemGlobalEnvironment* GetSSystemGlobalEnvironment()
{
DWORD A_SSystemGlobalEnvironment = *(DWORD*)0x164C548;
SSystemGlobalEnvironment* m_SSystemGlobalEnvironment = NULL;
if (A_SSystemGlobalEnvironment)
m_SSystemGlobalEnvironment = (SSystemGlobalEnvironment*)(A_SSystemGlobalEnvironment);
return m_SSystemGlobalEnvironment;
}