Доброе время суток! - Столкнулся со следующей проблемой, есть программа(снифер), которая присоединяется к процессу и пропускает через себя все пакеты. - Через 'Rootkit Unhooker' отследил, что программа подменяет адрес функции в main.exe. Код (Text): Hooked Object: [PID]ApplicationName-->>HookDll-->>HookFunction Hook Address and Location: OriginalAddress-->>HookAddress - [PathToHookDLL] Type of Hook: Inline - RelativeJump - Правильно ли я описал всё? P.S. -> Пробовал отследить это в таблице импорта main.exe, но результат отрицательный, более того, смотрел через LordPE - там тоже ничего не видно. (Адреса функции WS2_32.DLL сохраняются) - Мне необходимо как-то отслеживать эти изменения адресов функции как в 'Rootkit Unhooker'. P.S. -> Буду благодарен за любые советы и направления. # Добавлено: И если кто-то может, очень хотелось бы узнать, как выполняет это отслеживание сама программа 'Rootkit Unhooker'. (Использует драйвер?)
MuForum Просто сохряняй оригиинальные первые байты функций, которые могут быть перехвачены, потом периодически сверяй. Еще можно, например, написать драйвер, который не даст возможность открыть твой процесс (хук NtOpenProcess). В том же драйвере можно хукать NtProtectVirtualMemory, чтобы хукер не смог изменить аттрибуты защиты страниц, ведь по умолчанию писать на адреса DLL, в которых есть код нельзя.
- Благодарю за совет. (Сейчас буду копаться) P.S. -> Если можешь подкинуть какие-то названия полезных книг/статей/ссылки, буду благодарен. - Сейчас на RSDN читаю.
Если снифер написан специально под твой код, никакие защиты тебе не помогут. Будешь проверять свой код в памяти - тебе подсунут поддельную ws2_32.dll, будеш проверять ее - будут юзать LSP, а не LSP так raw сокеты, потом надоест - и просто убьют твою защиту... А если снифер универсальный и переделывать его никто не будет - раз тебе хукают импорт - переделай его, чтоб хуки не работали.