Существуют-ли подходы для глобального перехвата функций (без DLL инъекций) из конкретной DLL? Доброго времени суток!
Изучая intercepting в ОС Windows заметил что всё сводится к SetWindowsHookEx, технике DLL инъекций (DLL-injection) и драйверам уровня ядра (но тут по всей видимости тоже только WinAPI).
Возник вопрос, возможно ли перехватить вызов функции из конкретной DLL не используя эти техники. Допустим нет необходимости перехвата от конкретного процесса, а необходим перехват от всех процессов.
Как я себе представляю, если эта DLL уже загружена в виртуальную память, следовательно у её функций есть конкретные адреса, которые подставляются в процессе запуска приложения посредством LoadLibrary (конечно, если приложение зависит от этой библиотеки). Т.е. нужен перехват обращения по этим адресам и не важно какой процесс обращается к библиотеке. И в случае переопределения поведения функций ГЛОБАЛЬНО, достаточно лишь патчинга этих адресов.
Если я ошибаюсь - поправьте.
Если есть знания по подходам или библиотеки - поделитесь.
Спасибо!

21 Авг 2019 в 06:48
225 +1
1
Ответы
1

Добрый день! Для глобального перехвата функций из конкретной DLL без использования DLL инъекций или драйверов уровня ядра, можно воспользоваться техникой перехвата функций через Detours. Detours - это библиотека для перехвата функций в реальном времени. Она позволяет переопределить поведение функций, включая функции из DLL.

Detours позволяет перехватывать вызовы функций и направлять их на свои собственные обработчики. Таким образом, Вы можете перехватить вызовы функций из конкретной DLL и изменить их поведение. Detours работает на уровне пользовательского пространства, поэтому нет необходимости использовать драйверы уровня ядра.

Вы можете изучить библиотеку Detours и посмотреть примеры ее использования для глобального перехвата функций из конкретной DLL. Надеюсь, это поможет Вам в решении задачи. Если у Вас возникнут дополнительные вопросы, не стесняйтесь обращаться. Всегда рад помочь!

20 Апр в 13:13
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 95 047 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир