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

         

Ply, семейство


Опасные нерезидентные вирусы. При запуске ищут .COM- и .EXE-файлы и записываются в их конец. Не зашифрованы, но используют алгоритм "перемешивания" своего кода, по мощности близкий к полиморфик-алгоритмам. В различных зараженных файлах приктически нет постоянных байтов кода, которые можно использовать для детектирования вируса. Вирусы состоят их трех блоков: блока основного кода, блока данных и блока перенаправленных вызовов.

+----------------+ |основной код | | | |----------------| |данные | |----------------| |перенаправленные| |вызовы | | | +----------------+

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

8C C8 MOV AX,CS <--> 90 NOP 90 NOP 8C C8 MOV AX,CS

Так же в зависимости от случайного счетчика они перемещают команды в блок перенаправленных вызовов и замещают команду на вызов CALL или JMP:

Заменено CALL Заменено JMP Первоначальный код ------------- ------------ ------------------ E8 xx xx CALL -+ <--> E9 xx xx JMP -+ <--> 90 NOP ... <-|---+ ... <-|---+ 8C C8 MOV AX,CS ... | | ... | | ... V | ... V | 8C C8 MOV AX,CS | 8C C8 MOV AX,CS | <помечено как 90 NOP | 90 NOP | свободный блок> C3 RET ---+ E9 xx xx JMP back -+

Таким образом, любая команда вируса может быть либо сдвинута в своем трехбайтовом блоке (если команда короткая), либо перемещена по случайному адресу в блок перенаправленных вызовов и заменена на JMP или CALL, а уже существующие команды CALL и JMP могут быть заменены на первоначальный код. В результате ни один байт вируса не зашифрован, но в вирусе нет практически ни одного постоянного байта. Этот довольно сложный механизм не свободен от ошибок, и вирусы часто портят файлы при их заражении. Вирусы проверяют имена файлов и не заражают: "Ply.4224,4722": AVP, AVPLITE, AVPVE, EMM386, F-PROT, FV386, FV86, MSAV, MVTOOL10, SCAN, TBSCAN, TBAV, TBCHECK, TBCLEAN, TBDISK, TBDRIVER, TBFILE, TBGENSIG, TBKEY, TBLOG, TBMEM, TBSETUP, TBSCANX, TBUTIL, VALIDATE, VIRSTOP, VPIC, VSAFE. "Ply.5133": AVP, AVPLITE, AVPVE, EICAR, EMM386, F-PROT, FV386, FV86, MSAV, MVTOOL10, SCAN, TBSCAN, TBAV, TBCHECK, TBCLEAN, TBDISK, TBDRIVER, TBFILE, TBGENSIG, TBKEY, TBLOG, TBMEM, TBSETUP, TBSCANX, TBUTIL, VALIDATE, VIRSTOP, VPIC, VSAFE. "Ply.5175": AVP, AVPLITE, AVPVE, BAIT, EICAR, EMM386, F-PROT, FV386, FV86, MSAV, MVTOOL10, SCAN, TBSCAN, TBAV, TBCHECK, TBCLEAN, TBDISK, TBDRIVER, TBFILE, TBGENSIG, TBKEY, TBLOG, TBMEM, TBSETUP, TBSCANX, TBUTIL, VALIDATE, VIRSTOP, VIRUS, VPIC, VSAFE. "Ply.4722,5133,5175" уничтожают файл \NCDTREE, если он есть.



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