slinkinone
@slinkinone
Агент "Везде успеть"

Как осуществляется перехват/переопределение функций посредством Dll Injection?

Доброго времени суток!
Людям, знакомым с информационной безопасностью и разработкой под Windows, знаком термин DLL Injection.
Вопрос такой, если в таргетируемом приложении есть функция Function1, которая каждые 15 минут выбрасывает окно с сообщением "Прошло 15 минут!" (просто в качестве примера), как с помощью DLL Injection переопределить эту функцию? Например, я хочу изменить интервал или добавить проверку, чтобы по средам окно никогда не выбрасывалось.
  • Вопрос задан
  • 422 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Лучше это делать "прямыми" методами через WinAPI HOOKS.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
maaGames
@maaGames
Погроммирую программы
Определяешь адрес этой функции и в месте её вызова подменяешь адрес на адрес своей функции из инжектированной dll. Разумеется должен быть тот же список аргументов и тип вызова (stdcall и т.п.).
Если функция оказалась inline, то всё несколько усложняется или упрощается, как повезёт.

Конкретно в этом случае лучше в своей функции проверять, нужно ли скипнуть окно и, если нет, то вызывать оригинальную функцию, чтобы не копировать её код к себе, что не всегда возможно.
Такая проверка может заблокироваться антивирусом, так что это не для продакшена, только для личного использования.)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы