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