eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
выпущен 12 ноября!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

Русский / Russian English / Английский

Сейчас на форуме: (+1 невидимый пользователь)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS · SVN ·

 eXeL@B —› Вопросы новичков —› Кто поставил хук
Посл.ответ Сообщение

Ранг: 7.2 (гость)
Статус: Участник

Создано: 8 января 2018 10:02 · Поправил: Ate New!
Цитата · Личное сообщение · #1

Здравствуйте, с прошедшими!
Подскажите, есть достаточно инструментов чтобы посмотреть установленные в процессах хуки, а есть ли инструменты, которые могут определять кто данный хук установил?
Я пробовал определить сам, действуя в лоб - если это вызов или прыжок, по адресу назначения через GetModuleHandleEx + GetModuleFileName, чтобы понять в какой модуль осуществляется переход, но то ли написал кривовато, то ли это вообще не рабочий случай.

В общем, подскажите инструменты, или пути самостоятельной реализации для такого случая.

Ранг: 1.8 (гость)
Статус: Участник

Создано: 8 января 2018 10:50 · Поправил: 0xC3 New!
Цитата · Личное сообщение · #2

RkU, Gmer, PCHunter

Ранг: 7.2 (гость)
Статус: Участник

Создано: 8 января 2018 11:34 · Поправил: Ate New!
Цитата · Личное сообщение · #3

Ate пишет:
есть достаточно инструментов чтобы посмотреть установленные в процессах хуки

К которым относится все вышеперечисленное, никто из них не имеет искомый функционал.

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

Ранг: 1.8 (гость)
Статус: Участник

Создано: 8 января 2018 11:56 New!
Цитата · Личное сообщение · #4

Тогда вам необходимо определить есть ли хук вообще, сравнивая префикс на диске и в памяти. Затем посмотреть куда поставлен переход, через перечисление загруженых модулей создать таблицу BaseAdress - Virtual size, затем через QueryVirtualMemory определиться уже с модулем куда идет перенаправление.


Ранг: 302.1 (мудрец)
Статус: Участник

Создано: 8 января 2018 20:45 New!
Цитата · Личное сообщение · #5

0xC3 пишет:
но если хук явный и указывает вместо штатного указателя переход на один из загруженных модулей, то почему бы эту информацию дополнительно не указать

А если хук внутри одной либы (даже функции)..., задача в общем нерешаема

Ранг: 7.2 (гость)
Статус: Участник

Создано: 9 января 2018 02:08 New!
Цитата · Личное сообщение · #6

Vamit пишет:
А если хук внутри одной либы (даже функции)

тогда на выходе будет имя собственного модуля, в чем проблема отфильтровать эти частные случаи?

Ate пишет:
определить "источник" хука постфактум вообще нерешаемая задача, но

если ссылка на модуль в адресном пространстве и этот модуль != наш модуль - пытаемся получить имя модуля.
Это все что я хотел бы получить (реализовать). Разве невыполнимо?


Ранг: 264.9 (наставник)
Статус: Участник

Создано: 9 января 2018 03:06 · Поправил: difexacaw New!
Цитата · Личное сообщение · #7

Ate

Не хук", а патч во первых. Хуки это один из оконных механизмов --> Link <--

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

Добавлено спустя 10 минут
> GetModuleFileName, чтобы понять в какой модуль осуществляется переход

Обычно переход выполняется в промежуточный буфер. Так что нужно всю трассу снять, что бы попытаться найти передачу управления в модуль, который как то связан с обработкой патча. Хотя модуля может не быть вовсе.
 eXeL@B —› Вопросы новичков —› Кто поставил хук

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS