Вмешивающиеся в Windows
Можно ли заменить системные функции, как это возможно на Linux и Solaris, используя LD_PRELOAD
Например, задав переменную окружения:
LD_PRELOAD =/путь/к/mymalloc.so
Я бы имел свои функции замены malloc вместо исполняемого файла C, уже установленного в системных библиотеках. Все остальные функции в dll системы будут работать как обычно.
Ответы
Ответ 1
В Microsoft Research есть библиотека под названием Detours, которая позволяет перехватывать вызовы API Win32.
Detours - это библиотека для управления произвольными функциями Win32 на машинах x86, x64 и IA64. Detours перехватывает функции Win32, переписывая код внутренней памяти для целевых функций. Пакет Detours также содержит утилиты для подключения произвольных DLL и сегментов данных (называемых полезными нагрузками) к любому двоичному файлу Win32.
Ответ 2
Если Detours (как упоминалось ранее) не является опцией - тогда вы можете взглянуть на WinAPI Override. Он активно поддерживается.
Обратите внимание, что доступна только 32-разрядная версия.