Code:
void MEMwrite(void *adr, void *ptr, int size)
{
VirtualProtect(adr,size,PAGE_EXECUTE_READWRITE, &OldProtection);
memcpy(adr,ptr,size);
VirtualProtect(adr,size,OldProtection, &OldProtection);
}
void DetouringHS(void)
{
int hEsVc = (int)GetModuleHandle("EhSvc.dll");
Sleep(100);
{
MEMwrite((void *)(hEsVc+0x10061C84),(PBYTE)"xC3",1);/// Unknow
MEMwrite((void *)(hEsVc+0x1002F04A),(PBYTE)"\x90\xE9",2);//SelfCrC
MEMwrite((void *)(hEsVc+0x100209FC),(PBYTE)"\x90\x90",2);//AntiAsm
MEMwrite((void *)(hEsVc+0x1002093B),(PBYTE)"\x90\x90",2);//AntiAsm
MEMwrite((void *)(hEsVc+0x1002D26E),(PBYTE)"\x33",1);//NanoJmp or main detection
MEMwrite((void *)(hEsVc+0x1002D72F),(PBYTE)"\x33",1);//NanoJmp or main detection
MEMwrite((void *)(hEsVc+0x1002AAEF),(PBYTE)"\x33",1);//NanoJmp or main detection
}
}
void DirectX(void)
{
for(;;)
{
DWORD EhSvc = (long)GetModuleHandleA("EHSvc.dll");
if(EhSvc!=0)
{
DetouringHS();
}
Sleep(20);
}
}
Quote:
|
CreateThread(0, 0, (LPTHREAD_START_ROUTINE)DirectX, 0, 0, 0);
|