Технология шифрования Докучаев Дмитрий aka Forb Спецвыпуск Xakep, номер #035, стр. 035-036-5 Как я уже говорил, можно не изобретать велосипед, а заюзать уже готовые расшифровщики. Для неопытного вирмейкера это единственная возможность написать рабочий вирус, так как ему вряд ли удастся сделать свой рабочий модуль (это довольно сложно и под силу лишь спецу). Но с чужим расшифровщиком ты можешь столкнуться с рядом проблем, одна из которых уже была названа - антивирус ;). Вызов дешифратора находится, как правило, в рабочем регистре, узнать который ты сможешь, прочитав мануал по данному модулю. И напоследок скажу - если будешь писать вирус, то делай это лишь в целях самообразования. Используя чужой дешифратор кода, хороший полиморф ты все равно не напишешь. Поэтому запускать вирь на чужих беззащитных машинах будет просто глупо. Искусственный интеллект В полиморфы нередко встраивают код, который выполняется в зависимости от определенной ситуации. Например, при детектировании вируса он может вызвать процедуру самоуничтожения. Как самого себя (частичная или полная безвозвратная модификация кода), так и системы (массовое заражение системных файлов без возможности восстановления). Это очень осложняет поиск лекарства от заразы - до антивирусной лаборатории вирус доходит уже в нерабочем состоянии. Также были случаи вызова исключающего кода при попытке излечения виря (на высоком уровне полиморфизма). Вирусописатели прежде всего акцентируют внимание на трех главных вещах в своем творении: 1. Маскировка. Цель каждого полиморфника - как можно дольше продержаться в системе до детектировании антивирусом. 2. Защита. После обнаружения заразы происходит вызов исключающего кода. Об этом было написано выше. 3. Сложность. Код вируса должен быть очень запутанным, содержать в себе инструкции-зеркала, команды-мусор и прочее. Это обычно работает против новичка, но профессионал в течение нескольких часов изучения кода при трассировке, проследит за алгоритмом заразы. Массовые заражения Теперь, когда мы знаем принцип полиморфиков, обратимся к истории. Первый такой вирь появился в 1990 году и назывался Chameleon. Он вписывал свой код в конец COM-файлов, а также использовал два алгоритма шифрования. Первый шифрует тело по таймеру в зависимости от значения заданного ключа. Второй использует динамическое шифрование и при этом активно мешает трассировке виря. Существовала и модификация Chameleon. Вторая версия 1 апреля форматировала диск A: (учитывая объемы того времени, это было весьма неприятно). После этого эволюция полиморфов завершилась. Только через три года вышел вирус Phantom1, который добрался и до русских компьютеров. Он не был опасен, хотя содержал в коде ряд ошибок, из-за которых генератор не мог расшифровать тело вируса. При этом исполняемый файл переставал функционировать. После длительного простоя системы фантом выводил на экран видеоизображение с надписью. Она гласила, что компьютер находится под наблюдением опасного вируса. Параллельно вирусам появлялись и полиморфик-генераторы, одним из которым был MtE, открывший целое заразное семейство. Он уже использовал зеркальные функции, чем затруднял свое детектирование. Теперь вирмейкеру не нужно было писать свой дешифратор, а лишь воспользоваться MtE, в результате чего мир узнал о новом семействе вирусов. Что интересно, первый MtE-вирус был перехвачен антивирусной лабораторией, поэтому быстрый выход защиты от первого серьезного полиморфика защитил множество рабочих станций от заразы. |