Реферат: Методы перехвата API-вызовов в Win32
функция-перехватчик (detour function) – функция, замещающая перехватываемую;
функция-трамплин (trampoline function) – функция, состоящая из заголовка целевой функции и команды перехода к остальному коду целевой функции.
ПРИМЕЧАНИЕ Trampoline в переводе с английского – «батут», однако словосочетание «функция-трамплин» более точно передаёт логику её работы. |
Таким образом, если целевая функция имеет следующий заголовок:
TargetFunction: push ebp mov ebp, esp push ebx push esi push edi ... |
то в результате перехвата получится следующее:
TargetFunction: jmp DetourFunction: TargetFunction+5: push edi ... TrampolineFunction: push ebp mov ebp, esp push ebx push esi jmp TargetFunction+5 ... |
Причём функция-перехватчик может вызывать функцию-трамплин в качестве оригинальной целевой функции.
Библиотека Detours предлагает два метода внедрения «трамплинов» – статический и динамический. Статический метод используется, когда адрес целевой функции известен на этапе сборки модуля. Реализуется он так:
#include <windows.h> #include <detours.h> //Подключимбиблиотеку Detours К-во Просмотров: 358
Бесплатно скачать Реферат: Методы перехвата API-вызовов в Win32
|