Что случилось с обходом Microsoft, это не работает
Этот код скомпилирован и работал несколько лет назад. Это больше не работает, и я все еще использую detours v2.1, я только обновил компилятор с (я полагаю) VS 2010 до настоящего времени (2013 и 2015).
Обратите внимание, что я добавляю хук в середине функции, а не в начале.
Это то, что объезд будет делать, когда он работал:
1. adds a jmp to address 0x1000 [previously this was a mov ebx, 5]
2. mov eax, 1 // my code
3. mov ebx, 5
4. jump back at address 0x1004
Теперь, что происходит,
1. adds a jmp to address 0x1000, [ this still works]
2. mov eax, 1 // my code
3. jump back at address 0x1000
4. **Infinite loop.**
крюк:
void __declspec(naked) New_Fn()
{
__asm MOV EAX, 1
JMP MidFun
}
DetourAttach(&(PVOID&)MidFun, New_Fn);
Есть идеи?