уведомление о запуске функции

Discussion in 'С/С++, C#, Rust, Swift, Go, Java, Perl, Ruby' started by vvs777, 1 Feb 2008.

  1. vvs777

    vvs777 Elder - Старейшина

    Joined:
    16 Nov 2004
    Messages:
    393
    Likes Received:
    212
    Reputations:
    4
    как без перехвата функции получить уведомление о ее запуске?

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

    spider-intruder Elder - Старейшина

    Joined:
    9 Dec 2005
    Messages:
    700
    Likes Received:
    339
    Reputations:
    37
    м.б. Notify Routines ??? (нет каспера просто под рукой)

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

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


    П.С.2 - а откуда ты взял эти адреса? Ты их в SSDT смотришь я надеюсь??
    Короче давай подробностей - расскажу всё )
     
    #2 spider-intruder, 1 Feb 2008
    Last edited: 1 Feb 2008
  3. razzzar

    razzzar Elder - Старейшина

    Joined:
    16 Jun 2007
    Messages:
    92
    Likes Received:
    75
    Reputations:
    5
    ну вообще-то касперыч изменяет таблицу Sdt, где он выставляет адресса своих функций. они при вызове сообщают р3 монитору о том что кто-то их вызвал, касперский об этом говорит и спрашивает что делать. если ответ положительный, то вызывается оригинальная функция, которая была запсиана в Sdt до выставления хуков.
     
  4. _Great_

    _Great_ Elder - Старейшина

    Joined:
    27 Dec 2005
    Messages:
    2,032
    Likes Received:
    1,118
    Reputations:
    1,139
    ssdt
     
  5. vvs777

    vvs777 Elder - Старейшина

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

    проги
    запущу дома потом рез скажу.