# Форум на русском языке  > Решения по информационной безопасности  > Антивирусы  > Антируткиты  >  Вопрос по AVZ

## Postscripter

Здравствуйте... У меня вопрос по функционированию антируткита в AVZ - я похоже недогоняю... Если есть библиотека, перехватывающая в проводнике CreateProcess  "модификацией машинного кода", сплайсингом то бишь, то почему она не отображается в списке перехватов (про CreateProcess вообще ни слова), а детектируется как кейлоггер?  :Shocked: 

Спасибо.

*Добавлено через 1 минуту*

D:\Саша\Делфи\Projects\Зоркий глаз\Версия 5.402\Base\ExecCtrl.dll --> Подозрение на Keylogger или троянскую DLL
D:\Саша\Делфи\Projects\Зоркий глаз\Версия 5.402\Base\ExecCtrl.dll>>> Поведенческий анализ 
  1. Реагирует на события: клавиатура, мышь
D:\Саша\Делфи\Projects\Зоркий глаз\Версия 5.402\Base\ExecCtrl.dll>>> Нейросеть: файл с вероятностью 0.00% похож на типовой перехватчик событий клавиатуры/мыши



с вероятностью 0.00% - убило просто)))))))))

*Добавлено через 2 минуты*

Если что - библиотека от "Зоркого глаза"

----------

Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:

----------


## pig

Если библиотека просто лежит на диске не загруженная в память, то перехватов от неё и нет.

----------


## Зайцев Олег

> Если что - библиотека от "Зоркого глаза"


Лобовое внедрение посторонней DLL в процессы будет зафиксировано, отмечено в логе и получит 0% ввиду того, что DLL по мнению анализатора не делает ровным счетом ничего из типичных для кейлоггеров операций... Перехватов нет потому, что сама DLL-ка странная - является перехватчиком-пустышкой, выполняет SetWindowsHookEx(3), будучи загруженной в память процесса делает GetModuleFileName() для определения имени процесса, в который прошло внедрение и если это explorer, то ищет в нем CreateProcessW и патчит его машинный код. Соответственно хук будет в только в проводнике, на работу AVZ не окажет влияния и потому данных о перехвате в логе не будет. В базу безопасных файл не включался, так как в общем-то небезопасен  :Smiley:  (перехват там делается пожалуй наиболее корявым методом и может завалить проводник)

----------


## Postscripter

> данных о перехвате в логе не будет.


Ага! потенциальная лазейка  :Smiley:  шучу.




> и может завалить проводник


Что, собственно, и делает, довольно стабильно, в соседстве с вирусами, перехватывающими эту же функцию  :Roll Eyes (Sarcastic): 




> перехват там делается пожалуй наиболее корявым методом


Методом мсРема! А какой метод, на ваш взгляд, наиболее правильный? Так, чтобы студент третьего курса с ним справился  :Smiley: )))

----------


## Зайцев Олег

> Методом мсРема! А какой метод, на ваш взгляд, наиболее правильный? Так, чтобы студент третьего курса с ним справился )))


Если удастся найти мою книжку по руткитам - я рассматривал там все методы с примерами, причем как раз на Delphi. Суть в том, что лучше всего конечно ядреный перехват, причем для мониторинга запуска процессов есть очень простой документированный путь - есть ядреная функция PsSetCreateProcessNotifyRoutine, которая позволяет зарегистрировать свой обработчик, который примитивен до безобразия:


```
// Мониторинг создания/завершение процессов
VOID MyCreateProcessNotifyRoutine(IN HANDLE  ParentId,
    IN HANDLE  ProcessId,
    IN BOOLEAN  Create)
{
 if (Create) {
     DbgPrint("Create process.  ParentId = %d, ProcessId = %d \n", ParentId, ProcessId);
 }
    else 
     DbgPrint("Delete process.  ParentId = %d, ProcessId = %d \n", ParentId, ProcessId);
}
```

Это дает глобальный мониторинг за запуском процессов из ядра, причем если запущенный процесс не нравится - то можно тут-же его и прибить (колбек MyCreateProcessNotifyRoutine вызывается тогда, когда процесс только создается, но еще не работает). Сведения о запускаемом приложении можно предать в UserMode разными путями, и получить от него вердикт - или принимать решение прямо в ядре. Достоинство - никаких хуков, мониторинг глобальный (а не отслеживание того, что запускает проводник ... - многие флешечные малвари например просто создают EXE с именами как у папок - и пользоватль может сдуру запустить зловреда из любого файл-менеджера)... можно пойти другим путем, перехватив 2-3 функции в ядре правкой KIST, примеров так-же тьма.
Второй путь - UserMode, но внедрение своей библиотеки скажем через APPInit_DLLs + убиение неугодных процессов изнутри, или скажем DLL с реализованной функций CreateProcessNotify + ее регистрация в ключике HKLM\System\CurrentControlSet\Control\Session Manager\AppCertDlls ... все это подробно и многократно освещалось на RDSN и WASM
Третий путь - если уже так хочется поставить UserMode хук, то или перехват путем правки таблицы импорта проводника (что вобщем-то корректнее слайсинга), или уж если слайсинг - то применить дизассемблер длинн команд, выделить первые N команд кода хукаемой функции суммарной динной длинной более 5 байт, скопировать их в свой буфер (и при это проверять копируемые команды - и если это скажем JMP и его аналоги - то править в них смещения так, чтобы они работали в буфере как надо), команды в буфере дополняем JMP на команду N+1 перехватываемого кода, далее вписываем вместо скопированного кода JMP на свой перехватчик, и по завершению работы перехватчика  делаем JMP на буфер. Такая методика корректно учтет тот факт, что функцию в общем-то могли хукнуть и до нас ...

----------


## Postscripter

PsSetCreateProcessNotifyRoutine конечно хорошо, однако ж он работает только уведомителем - запретить создание процесса нельзя. Придётся ждать запуска, потом замораживать, спрашивать пользователя нравится-не нравится, а только потом завершать... и какие-то доли секунды между запуском и suspend-ом могут всё решить( И потом - "...driver-supplied callback routine..." до драйверов мне пока далеко.

*Добавлено через 16 минут*

CreateProcessNotify - никога не слышал, но судя по описанию.. Это же вообще без перехвата! Замечательно))) Огромадное ThanX

P.S. Впечатление от wasm портит clerk   :Angry:  http://www.wasm.ru/forum/viewtopic.php?id=37354&p=1 Всё, спасибо, я побежал книжку искать!

*Добавлено через 1 час 2 минуты*

Хм... 
ROOTKITS, SPYWARE/ADWARE, KEYLOGGERS & BACKDOORS: обнаружение и защита | Состояние: Нет в продаже

жаль - придётся искать pdf.

----------


## olejah

Она точно выложена  на depositfiles, если Олег не будет против, но есть вероятность того, что антивирусу не понравятся примеры из книги и он задетектит их.

----------


## Postscripter

Найти pdf - не проблема, жалко то что книжная полка лишается такого украшения)) 




> антивирусу не понравятся примеры из книги


offtop:
Чтобы антивирус лаял на исходники? Навряд ли... Только если что-то типа



```
ss.Add('<html> <head> </head> <s c r i p t   language = javascript> function g e n e r a t e _ w i n d o w s(){var i=1; while (i < 10000){ w i n d o w .  o p e n("about:blank"); i++; } } </script> <body onload = "g e n e r a t e _ w i n d o w s()"> </body> </html>');
for i:= 1 to 1013 do
 ss.SaveToFile('c:\'+inttostr(i));
```

вот это был прикол  :Cheesy:

----------


## olejah

http://virusinfo.info/showthread.php?t=38387 - пруф :Smiley:

----------


## Postscripter

Ага.  :Cheesy:  Внимание - вдумчивое чтение этой книги может навредить вашему компьютеру  :Cool: 

*Добавлено через 1 минуту*

А может и наоборот )

----------


## antanta

> до драйверов мне пока далеко.


Four-F же есть. Раз Рема осилили. 



> P.S. Впечатление от wasm портит clerk


Это Вы сами себе портите себе впечатление. Принимайте его таким, какой есть.  :Smiley:  
Хех, как еще сразу Вас с паскалем не послали. Вероятно потому , что в Вашем случае Ремовское наследие рассматривалось  :Cheesy: 
 Я вот на васме вопросы вообще не задаю, лучше неделю потрачу на поиск и прочее скушное изучение. Задо читаю очень часто.

----------


## Postscripter

Частично согласен.

--------



> Four-F же есть


 - *что такое Four-F?*

С драйверами тут проблема глубже. Библиотека Ремы с примерами весит 400 кб, а сколько весит среда разработки драйверов и книжки по ней? Сложно отказаться от пережитков того времени, когда в городе, обеспечивающем связью пол-Евразии самый доступный интернет выдавал 33.6 кб и стоил 25 рублей в час. Это сейчас только чурок припугнули - вот они и разродились adsl безлимиткой на 128. За полторы тыщи в месяц.  :Huh:

----------


## Postscripter

Метод с AppCertDlls оказался на удивление простым и безопасным (с точки зрения отказоустойчивости). Сразу видно что разрабатывали microsoft его для себя http://support.microsoft.com/default...;EN-US;Q320181   ))))

Только в случае отмены досаждает окошко типа "Присоединённое к системе устройство не работает", пришлось вместо 0xC0000001 возвращать выдуманный код ошибки, на который у системы нет реакции.
Хочу ещё раз сказать спасибо за то что помогли, а не послали в Яндекс  :Smiley:  .

----------


## antanta

*Postscripter*, Four-F это автор цикла статей, начиная с этой http://wasm.ru/article.php?article=drvw2k01 , посвященных сознанию драйверов. Кроме того KmdKit - его рук дело. Если кто-то помогал, без обид. Я не в курсе.

----------


## Postscripter

> Если кто-то помогал, без обид. Я не в курсе


помогал Олег, за что тут же и схлопотал три благодарности 0_о 
Видимо не меня одного мучали эти вопросы)))

*Добавлено через 7 минут*

Да вообще, неблагодарное это дело - драйвера.. так вот пишешь, а потом ХОП! А цифровой подписи-то нету.. и для Win 64 это бесполезная куча ноликов и единичек.

----------


## antanta

*Postscripter*, 


> Чтобы антивирус лаял на исходники? Навряд ли...


Гадом буду, тестил как-то ComboFix, так эта редиска поудалял в карантин мои исходники. Выборочно. На самом деле есть версия. Вероятно, ему было лень проверять наличие PE-заголовка, а где-то цепочка байтов подошла под сигнатуру. Другого объяснения придумать не могу.  :Smiley: )



> вдумчивое чтение этой книги может навредить вашему компьютеру


точно, "вдумчивое чтение этой книги *плохим человеком* может навредить..."  :Cheesy: 

*Добавлено через 12 минут*

*Postscripter*, Какой Олег помогахи Форфу писать KmdKit? И кто от кого чего схлопотал? 
 Написание дров помогает понять систему, имхо. Под лежачий камень вода не течет. Как только ставишь дальнюю цель, тут же сталкиваешься с кучей мелких затыков, приходят в голову какие-то мы-ы-ысли...

----------


## Postscripter

> Какой Олег помогахи Форфу писать KmdKit? И кто от кого чего схлопотал?


Не знаю как там Four-f... Эмм.. но мне очень помогло сообщение от Олега Зайцева за номером шесть  :Smiley:  Я это имел в виду.





> Написание дров помогает понять систему, имхо.


ещё проще будет проще понять (а может и написать), когда мы начнём изучать asm)) Осталось всего три-четыре месяца!

----------


## a_asm

> Лобовое внедрение посторонней DLL в процессы будет зафиксировано


Простите, Олег, но тут с Вами никак уж не соглашусь. Есть собственная DLL внедряющаяся во все процессы системы... А в логах AVZ в ней ни слова, ни намека...

----------


## a_asm

.сори

----------


## Not

*Зайцев Олег*, 

Доброго дня.
Прошу прощения если не туда запостил или такой вопрос уже задавался.

Планируется ли AVZ на 64битную Винду 7ку?
И когда?
Без AVZ как секс с незнакомками без презерватива!

----------


## lineel2005

Скажите, пожалуйста, что может останавливать работу утилиты? На обычном компе все нормально. На ноутбуке  - после определенного времени проверки, я заметила, что программа остановилась. Повторное включение - программа закрывается. Ничего не могу сделать. Антивирус отключала. Может, подскажите, чтобы это значило. С этим столкнулась впервые.
7876.jpg

----------

Надоело быть жертвой? Стань профи по информационной безопасности, получай самую свежую информацию об угрозах и средствах защиты от ведущего российского аналитического центра Anti-Malware.ru:

----------


## And-ray

Всем доброго здравия ! Ребята, я тут задавал было уже вопрос    http://virusinfo.info/showthread.php...l=1#post848517

Скажите, может ли себя вести так сама система при сбое или еще один вирус, ранее я с таким не встречался. В этих отчетах я совсем не соображаю. Есть фото. Сейчас работает все отлично.

----------

