使用detours的问题
大家是否有使用微软的detours库,一般的hook是方便的,但至少有2种情况我觉得有的问题的,或者是我的使用方法不对情况1:
先看图
代码:
ULONG g_Test1 = 0x00421EF4;
__declspec(naked) VOID NewTest1()
{
__asm {
mov eax, 1
jmp g_Test1
}
}
DetourTransactionBegin();
DetourUpdateThread(GetCurrentThread());
DetourAttach ((PVOID*)&g_Test1, NewTest1);
DetourTransactionCommit();
结果是改不了的,detours执行源代码时给恢复了,解决办法是改用普通的hook方法
情况2:iat hook
call dword ptr ds:[50B9B8]这种格式的,用detours hook会崩溃