PDA

Просмотр полной версии : уведомление о запуске функции


vvs777
01.02.2008, 15:41
как без перехвата функции получить уведомление о ее запуске?

Антивирус Касперского 6.0 при вызове функции SetWindowsHookEx
сообщает о потенциально-опасном ПО типа loader, которое пытается всюду
внедрить библиотеку.
При этом он не перехватывает функцию SetWindowsHookEx.
Без Касперского
@SetWindowsHookEx = $00325120 (обычный)
@SetWindowsHookEx1 = $77D45006 (через LoadLibrary)
когда Касперского только что запустили и он матерится о том что базы
устарели итп, но еще не матерится на запуск хука
@SetWindowsHookEx = $00325120 (обычный)
@SetWindowsHookEx1= $77D45006 (через LoadLibrary)
Когда уже полностью загружен и матерится на все
@SetWindowsHookEx = $00325120
@SetWindowsHookEx1= $77D45006
Адрес функции не зависит от того запущен касперский или нет. Но зато он
разный для обычной и загруженной через LoadLibrary.
Почему и как такое происходит? Как же антивирь определяет что функция
запускается?

spider-intruder
01.02.2008, 16:17
м.б. Notify Routines ??? (нет каспера просто под рукой)

подумав немного.........
или сплайсинг :-)

Ты запусти хотябы Avz а лучше Rku и расскажи нам поподробнее что они пишут - тогда и посоветуем хорошо
(ставить касперского нет возможности)


П.С.2 - а откуда ты взял эти адреса? Ты их в SSDT смотришь я надеюсь??
Короче давай подробностей - расскажу всё )

razzzar
01.02.2008, 17:26
ну вообще-то касперыч изменяет таблицу Sdt, где он выставляет адресса своих функций. они при вызове сообщают р3 монитору о том что кто-то их вызвал, касперский об этом говорит и спрашивает что делать. если ответ положительный, то вызывается оригинальная функция, которая была запсиана в Sdt до выставления хуков.

_Great_
01.02.2008, 20:17
ssdt

vvs777
04.02.2008, 12:34
пока немного не догнал.
>П.С.2 - а откуда ты взял эти адреса?
Вообщем стандартный пример установки хука (брал из фака forum.sources.ru раздел Делфи). Прога, вызывающая функцию sethook() - ничего интересного.
А вот в dll-ке при вызове setwindowhookex я поставил вывод в файл значения
integer(@setwindowhookex) и то что выдает GetProcAddress(Loadlibrary())
Эти значения я и выложил в 1 посте. Это производится как при НЕ ЗАПУЩЕННОМ касперском (когда ничего подменено не должно быть) так и при запущенном.
Если бы каспер хукал функцию, адреса "до" и "после" были бы разными.

проги Avz а лучше Rku запущу дома потом рез скажу.