Энциклопедия компьютерных вирусов

         

к ним. Зараженные файлы увеличиваются


Очень опасные резидентные полиморфик-вирусы. Зашифрованы не только в файлах, но и в памяти. Записываются в конец COM- и EXE-файлов при обращениях к ним. Зараженные файлы увеличиваются в размере на 18K, собственная длина вируса - около 11K (длина копируемого вирусом TSR-кода). Используют большое число различных полиморфик, антиотладочных, анти-антивирусных и прочих "хитрых" приемов. Настолько сложны, что гораздо чаще завешивают компьютер, чем заражают какой-либо файл.

Вирус в файле зашифрован тремя полиморфик-генераторами, и в зараженном файле присутствуют три абсолютно различных полиморфик-цикла расшифровки, которые при запуске файла последовательно расшифровывают код вируса: первый цикл расшифровывает второй цикл и снимает свою шифровку с третьего цикла и тела вируса, второй цикл расшифровывает третий цикл и тело вируса, затем третий цикл завершает расшифровку. Причем полиморфик-циклы помимо множества команд-"пустышек" используют также антиотладочные приемы. Когда управление попадает собственно на тело вируса, оно оказывается все еще зашифрованным, и вирус выполняет окончательный (четвертый) цикл. Этот цикл достаточно сложен. Вирус устанавливает INT 1 на процедуру расшифровки одного байта, включает трассировку и выполняет "холостой" цикл (LOOP на себя). При этом каждый раз вызывается INT 1 и расшифровывается очередной байт кода вируса. Плюс к этому вирус не использует какую-либо постоянную комбинацию команд для расшифровки, а каждый раз выбирает команду из списка SUB, ADD, XOR, ROL в соответствии с некоторым алгоритмом, обратным алгоритму зашифровки при заражении файла.

Затем вирус инсталлирует себя в память. При этом проверяет свой идентификатор (сравнивает слово по адресу 0000:0198 с DEADh), трассирует INT 2Fh, используя полученный адрес определяет адрес INT 13h в BIOS, освобождает часть conventional-памяти, куда затем копирует свой код. Перехватывает INT 21h. Для этого запоминает первые два байта обработчика INT 21h, записывает туда команду INT ACh (CDh ACh) и перехватывает INT ACh. Перехватывает также INT 1Ch и устанавливает INT ABh на свою подпрограмму заражения и "стелс".

Обработчик INT 21h Вирус +---------+ +---------+ <----+ |CDh ACh |----+ |.... | | зашифровано |.... | | |INT AB |<----+ | в TSR-копии |.... | | |заражение| | | |.... | | |.... | | | |.... | | |стелс | | | | | | |.... | | <----+ | | +---->|INT AC | | | | |.... | | | | |CDh ABh |-----+ | | |.... | +---------+ +---------+

Затем вирус аккуратно вычищает свой код, оставшийся в памяти при расшифровке, и отдает управление программе-носителю.


Содержание раздела