PDA

Просмотр полной версии : Как работает антивирус ?


cleric.80
25.01.2009, 12:56
Как работает антивирус ?
если в двух словах? вот задался вопросом,а как он впринципе проверяет файл, и определяет инфицирован или нет, раскладывает файл по кусочкам, ищет скрипт схожий с вирусным,или как ? что является показателем что файл инфицирован. ( рассматривая толко систему, без интернета )

Вася007
25.01.2009, 13:22
Наверно ищет вредоносный код в файле

cleric.80
25.01.2009, 13:28
а если файл зашифрован ?. тоесть есть понимаю содержит базу скриптов вирусов ? )))

waik
25.01.2009, 13:38
елси фаил зашифрован то у антивируса есть расшифровщик ,и поетомуесть крипторы приват (которые незанеслись в базу антивируса по методу шифровки) и паблик которые паляться

neprovad
25.01.2009, 15:35
сигнатурные проверки и эмулятор кода

SaiRus
25.01.2009, 15:43
http://www.merc-press.ru/index.php?name=Pages&op=page&pid=16
ну вот более менее инфа нормальная, пара принципов работы Антивирь ПО

cleric.80
25.01.2009, 15:44
эмулятор кода ,,,???

SaiRus
25.01.2009, 15:53
эмулятор кода ,,,???
может эмулятор процессора? :eek:

iddqd
25.01.2009, 15:57
еще есть таблицы контрольных сумм файлов, проверяющие изменения в файловой системе

SaiRus
25.01.2009, 16:03
как я понял, недавно тоже задовался подобным вопрос...сравнивается контрольная сумма приложения с контрольной суммой в базе если совподает то вирус...

iddqd
25.01.2009, 16:15
необязательно вирус, просто модификация файла...

ENeRGY[of]Light
25.01.2009, 16:24
тем более иногда бывает что просто модифицированный файл антивирус принимает за инфицированный хотя на самом деле это не так ...

Грот
26.01.2009, 13:27
Как правило, вначале антивирус проверяет файл по сигнатуре, сравнивая его со своей базой , если ничего не обнаружено, запускается эмулятор. антивирус как бы создает свою среду (буфер), в который загружает исследуемый код, далее определяется глубина погружения в мкс (примерно) и начинается выполнение всех инструкций как в ольге.
глубина т.е время которое сканирует антивирус может меня вовремя сканирования, например антивирус обнаружил паковку и.т.п. однако все это должно быть в умеренном режиме, иначе процесс сканирования будет чрезвычайно долгим.

по мере распаковки файла антивирус сверяет его со своей базой, и как только обнаружит вредоносную сигнатуру, сообщает об этом.

Alrion
26.01.2009, 13:52
Есть несколько подходов обнаружения вирусов, сигнатурный (по характерным сегментам кода), и эвристический по поведению (например честной программе незначем скрывать свой прочес в диспетчере задач).

LEE_ROY
26.01.2009, 16:01
http://www.anti-malware.ru/node/91

cleric.80
26.01.2009, 16:04
тоесть если закриптовать файл антивирь тока скажет что не может проверить, так , допустим , тогда вопрос - а дальше при запуске зашифрованного файла разве нет над ним контроля? делает что хочет????

Hellsp@wn
26.01.2009, 16:15
именно со стороны антивируса, контроля нету :) дальше в дело вступает проактивка/HIPS.

cleric.80
26.01.2009, 17:52
так он палится или нет ? как насчет закриптованных вирей ? как о нем узнаю если антивирь пропустит ??? или же он сделает свое дело ?

spider-intruder
26.01.2009, 19:34
глубина погружения в мкс

Ахтунг Ахтунг!! Массированая атака ботов ))))

Все ваши крипторы приват не приват в большинстве своем до одного места. После распаковки "пинча" он перестанет быть критованым файлом и снова станет "пинчем"
на диске ли он или в памяти. Если авер написан грамотно и "наглухо погружен в МКС" :-) то ваш файл полюбому спалят. Для этого в крипторы встраивают анти... эмуляцию, эвристику ляляля. Но при хорошем антивирусе это не поможет. Хотя в данный момент таковых нет

Грот
27.01.2009, 06:19
Антивирусы очень много чего не эмулируют.
допустим вам нужно закриптовать пинч возмем самый простой способ каждый байт подвергнем хором с рандомным ключом + добавим рандомное число байт это же число вставим в стаб. эвристик конечно распакует все это тогда в дело вступает анти эмуляционные трюки.
нужно заставить эмулятор пойти по ложному следу к примеру использовать такие команды о которых незнает эмулятор а программа выполнит их и пойдет по нужному пути.
вот один пример.
можно использовать сложную цепочку передачи из памяти в ммх из ммх в FPU ну а там можно к примеру в SSE далее прибавить к ним число которое тоже будет генерироваться подобным образом при этом в SSE у тебя должен получиться набор байт при вкладывании которых должна получиться команда push и байты после чего в стеке получим уже готовый ничем не эмулированный набор команд каких? ну тут уже вам решать. это один из способов сложной анти эмуляции осталось добавить генерацию использования разных ММХ SEE и FPU регистров ну и цифра которая будет прибавляться к каждому байту в SSE тем самым эмулировать будет еще сложней.
собирается этот код в обратном порядке.
к примеру конечные байты это и будет выход из бесконечного цикла,программа все это поймет и выпрыгнет а эмулятор зависнит.

р.с правда в случии с пинчем это не поможет антивирусы палят его местоположение при запуске imageBase придеться и его сменить ну и постовить заглушку DOS.
вот после этого он точно не спалиться.
хотя при запуске проактивка все равно его спалит.

spider-intruder
27.01.2009, 11:39
хотя при запуске проактивка все равно его спалит.

Ч.Т.Д.

cleric.80
29.01.2009, 11:46
кароч ясно,никаких чудес,просто работает,