Вопрос

Можно ли заменить системные функции, как это возможно в 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-битная версия.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top