Ajuda Detour Detectado
Alguém pode me ajudar a minha desvio é detectado ou ligar? Alguém pode me ajudar por me dar uma outra maneira?
Void *DetourCreate(BYTE *Source, Const BYTE *My, INT Len)
{
INT I;
For(I = 0;Source[I] != 0xE8;I++);
BYTE *Jmp = (BYTE*)Malloc(Len+5);
DWORD Dwback;
VirtualProtect(Source, Len, PAGE_READWRITE, &Dwback);
Memcpy(Jmp, Source, Len);
Jmp += Len;
Jmp[0] = 0xE8;
*(DWORD*)(Jmp + 1) = (DWORD)(Source + Len - Jmp) - 5;
Source[I] = 0xE8;
*(DWORD*)(Source + I + 1) = (DWORD)(My - Source) - 5;
VirtualProtect(Source, Len, Dwback, &Dwback);
}
void *DetourCreate(BYTE *src, const BYTE *dst, const int len)
{
BYTE *jmp = (BYTE*)malloc(len + 5);
DWORD dwBack;
VirtualProtect(src, len, PAGE_EXECUTE_READWRITE, &dwBack);
memcpy(jmp, src, len);
jmp += len;
jmp[0] = ( ( 0xE9 - 0x1 ) + 0x1 );
*(DWORD*)(jmp + 1) = (DWORD)(src + len - jmp) - 5;
src[0] = ((0xE9 - 0x1) + 0x1);
*(DWORD*)(src + 1) = (DWORD)(dst - src) - 5;
for (int i = 5; i<len; i++)
src[i] = ( (0x90 - 0x1) + 0x1 );
VirtualProtect(src, len, dwBack, &dwBack);
return (jmp - len);
}
