Реферат: Методы перехвата 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