Я изучал этот метод перехвата API, используя механизмы горячей установки в Windows DLL.
http://www.codeproject.com/KB/winsdk/0xF9EB_Hooking.aspx
Мне было интересно, если кто-нибудь узнает о способе его расширения для перехвата неэкспортируемых функций, таких как конструктор C ++ для внутреннего класса внутри DLL. Я уже знаю адрес с помощью разборки ... проблема, с которой я сталкиваюсь, заключается в том, как установить правильные соглашения о вызовах, чтобы я мог вызывать исходную функцию внутри моей функции ловушки.
Я уже дошел до точки, где вызывается моя функция ловушки ... программа падает, потому что я не могу вернуть результаты вызова исходной функции.
Предположим, мы говорим о подключении внутреннего конструктора класса к прототипу примерно так:
public __thiscall <class_name>::<class_name>(<single pointer arg to another object>)