Что случилось с обходом 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);

Есть идеи?

0 ответов

Другие вопросы по тегам