![]() |
Как работает антивирус ?
Как работает антивирус ?
если в двух словах? вот задался вопросом,а как он впринципе проверяет файл, и определяет инфицирован или нет, раскладывает файл по кусочкам, ищет скрипт схожий с вирусным,или как ? что является показателем что файл инфицирован. ( рассматривая толко систему, без интернета ) |
Наверно ищет вредоносный код в файле
|
а если файл зашифрован ?. тоесть есть понимаю содержит базу скриптов вирусов ? )))
|
елси фаил зашифрован то у антивируса есть расшифровщик ,и поетомуесть крипторы приват (которые незанеслись в базу антивируса по методу шифровки) и паблик которые паляться
|
сигнатурные проверки и эмулятор кода
|
Код:
http://www.merc-press.ru/index.php?name=Pages&op=page&pid=16 |
эмулятор кода ,,,???
|
Цитата:
|
еще есть таблицы контрольных сумм файлов, проверяющие изменения в файловой системе
|
как я понял, недавно тоже задовался подобным вопрос...сравнивается контрольная сумма приложения с контрольной суммой в базе если совподает то вирус...
|
необязательно вирус, просто модификация файла...
|
тем более иногда бывает что просто модифицированный файл антивирус принимает за инфицированный хотя на самом деле это не так ...
|
Как правило, вначале антивирус проверяет файл по сигнатуре, сравнивая его со своей базой , если ничего не обнаружено, запускается эмулятор. антивирус как бы создает свою среду (буфер), в который загружает исследуемый код, далее определяется глубина погружения в мкс (примерно) и начинается выполнение всех инструкций как в ольге.
глубина т.е время которое сканирует антивирус может меня вовремя сканирования, например антивирус обнаружил паковку и.т.п. однако все это должно быть в умеренном режиме, иначе процесс сканирования будет чрезвычайно долгим. по мере распаковки файла антивирус сверяет его со своей базой, и как только обнаружит вредоносную сигнатуру, сообщает об этом. |
Есть несколько подходов обнаружения вирусов, сигнатурный (по характерным сегментам кода), и эвристический по поведению (например честной программе незначем скрывать свой прочес в диспетчере задач).
|
http://www.anti-malware.ru/node/91
|
тоесть если закриптовать файл антивирь тока скажет что не может проверить, так , допустим , тогда вопрос - а дальше при запуске зашифрованного файла разве нет над ним контроля? делает что хочет????
|
именно со стороны антивируса, контроля нету :) дальше в дело вступает проактивка/HIPS.
|
так он палится или нет ? как насчет закриптованных вирей ? как о нем узнаю если антивирь пропустит ??? или же он сделает свое дело ?
|
Цитата:
Все ваши крипторы приват не приват в большинстве своем до одного места. После распаковки "пинча" он перестанет быть критованым файлом и снова станет "пинчем" на диске ли он или в памяти. Если авер написан грамотно и "наглухо погружен в МКС" :-) то ваш файл полюбому спалят. Для этого в крипторы встраивают анти... эмуляцию, эвристику ляляля. Но при хорошем антивирусе это не поможет. Хотя в данный момент таковых нет |
Антивирусы очень много чего не эмулируют.
допустим вам нужно закриптовать пинч возмем самый простой способ каждый байт подвергнем хором с рандомным ключом + добавим рандомное число байт это же число вставим в стаб. эвристик конечно распакует все это тогда в дело вступает анти эмуляционные трюки. нужно заставить эмулятор пойти по ложному следу к примеру использовать такие команды о которых незнает эмулятор а программа выполнит их и пойдет по нужному пути. вот один пример. можно использовать сложную цепочку передачи из памяти в ммх из ммх в FPU ну а там можно к примеру в SSE далее прибавить к ним число которое тоже будет генерироваться подобным образом при этом в SSE у тебя должен получиться набор байт при вкладывании которых должна получиться команда push и байты после чего в стеке получим уже готовый ничем не эмулированный набор команд каких? ну тут уже вам решать. это один из способов сложной анти эмуляции осталось добавить генерацию использования разных ММХ SEE и FPU регистров ну и цифра которая будет прибавляться к каждому байту в SSE тем самым эмулировать будет еще сложней. собирается этот код в обратном порядке. к примеру конечные байты это и будет выход из бесконечного цикла,программа все это поймет и выпрыгнет а эмулятор зависнит. р.с правда в случии с пинчем это не поможет антивирусы палят его местоположение при запуске imageBase придеться и его сменить ну и постовить заглушку DOS. вот после этого он точно не спалиться. хотя при запуске проактивка все равно его спалит. |
Цитата:
|
кароч ясно,никаких чудес,просто работает,
|
| Время: 17:16 |