Купить
 
 
Жанр: Учеба

Компьютерная вирусология ч. 1

страница №43

лифаг с "турбоинтерфейсом", Ревзин __________________,_______
Верс.7.2 от 04.10.89 - СП 1.4 (FREEWARE)

VI Вирусный интегратор
Шеховцов Александр Людвигович, Киев, тел.(044)266-00-97(сл)
Верс.1.1 от 11.12.89 - СП 1.4 (FREEWARE)
Верс.1.2 от 25.12.89 - СП 2.1 (FREEWARE)

VITAMINB Вакцина против бутовых вирусов, Сесса Александр В.
Днепропетровск, тел.(___)__________
Верс.1.0 от 10.10.90 - СП 2.8 (FREEWARE)

VL Полидетектор с вводом сигнатур для контекстного поиска
Шеховцов Александр Людвигович, Киев, тел.(044)266-00-97(сл)
Верс.1.3 от 12.12.89 - СП 1.4 (FREEWARE)
Верс.1.4 от 23.12.89 - СП 2.1 (FREEWARE, II премия)
Верс.2.0 от 09.09.90 - СП 2.7 (FREEWARE)

VR Полифаг, Осипенко Александр Сергеевич, Москва
Верс.3.47 от 10.01.90 - СП 2.1 (FREEWARE)
Верс.____- коммерч.продукт, цена - 950 руб.
Распр. - СП "Эпсилон", тел. (095)532-93-22
------------------------------------------------------------------------
ПРИМЕЧАНИЯ.
1. Обозначение СП указывает выпуск (том, номер) электронного
бюллетеня СОФТПАНОРАМА, содержащего данное средство. Указываются первое
и последнее включения в СП, а также участие в 1-м конкурсе
некоммерческих антивирусных средств (Киев, семинар "Системное
программирование", сентябрь 1989 г. - январь 1990 г.) для призеров
конкурса.
2. Способ распространения некоммерческих средств обозначен:
FREEWARE - свободно;
FREE-SRC - свободно с исходными текстами;
SHAREWARE- с частичной субсидией пользователями
(см. о способах FREEWARE и SHAREWARE файл read.me выпуска 2.8
электронного бюллетеня СОФТПАНОРАМА)
3. Указанная цена коммерческих версий является ориентировочной и в
конкретных случаях может зависеть от дополнительных условий поставки.
4. Последняя версия всех средств указана по данным автора на
октябрь 1990 г.
5. В списке не отражены многочисленные средства, включенные в СП и
рассчитанные на борьбу с одним конкретным видов вируса.

ПРИЛОЖЕНИЕ 6
НЕКОТОРЫЕ СВЕДЕНИЯ О ФАЙЛОВОЙ СИСТЕМЕ MS DOS

Существуют два основных типа дисков, используемых в MS DOS: гибкие
диски (дискеты) и твердые диски (винчестеры). В дальнейшем мы будем
рассматривать преимущественно дискеты, поскольку отличия в организации
информации между дискетами и винчестерами незначительны и касаются, в
основном, количественных характеристик. Впрочем, количественные характеристики
отличаются и для разных типов дискет (5- и 3-дюймовых, одно- и
двухсторонних и проч.). Поэтому для упрощения изложения далее везде будет
предполагаться дискета 360К (2 стороны по 40 треков, 9 секторов на
трек).

Информация записывается на фиксированное число концентрических
окружностей, называемых треками или дорожками, на которые может быть
выставлена магнитная головка. Их количество зависит от типа дисковода и
дискеты. Обычная 360K пятидюймовая дискета (DS/DD) расчитана на запись
40 треков на каждой стороне. Треки нумеруются, начиная с нуля, причем
трек 0 расположен ближе к внешнему краю диска (имеет наибольший
радиус), а трек 39 - к внутреннему отверстию дискеты.

Имеются дискеты и другой емкости. Так дискеты DS/QD (720K) рассчитаны
для записи 80 треков (0-79). Опыт показал, что большинство дискет
DS/DD можно успешно размечать на 80 дорожек и использовать как DS/QD без
снижения надежности записи информации. Кроме того дисковод может вести
запись на 40 и более старшие дорожки (до 43) или на 80-83. В частности
41 дорожка часто используется для "защиты от копирования" - часть
информации размещается на нее и пропадает при обычном копировании.
Впрочем, имеются специальные программы (COPYIIPC, COPYWRITE),
позволяющие обходить простейшую реализацию такой защиты за счет
копирования "всего подряд". Бутовые вирусы также иногда используют 40
дорожку для хранения своего хвоста.


Каждый трек разделен на секторы, которые являются единицами
считывания и записи информации на диск. Любая операция чтения или записи
в конечном счете сводится к чтению или записи определенного числа
секторов. На одном треке для обычной дискеты располагаются девять
секторов. Каждый сектор обычно содержит 512 байтов. Операционная
система выделяет файлам единицы дискового пространства, называемые
кластерами. Для обычных двухсторонних дискет 360 К (DS/DD) кластер
состоит из двух секторов и имеет размер 1024 байта (1К). Даже если
размер файла меньше 1 К, операционная система выделяет файлу целый
кластер. Таким образом, кластер является минимальной единицей
распределения дискового пространства.

Количество секторов которое можно записать на дискету зависит от
качества дисковода. Обычные дисководы, позволяют записывать до 10
секторов на трек (формат 10 секторов:40 треков - 400K и 10 секторов:80
треков - 800K), а дисководы повышенного качества - 17 секторов на трек
(для дискет HD емкостью 1,2М используется разметка 80 дорожек по 15
секторов). Следует отметить, что если разметить дискету DS/DD (DS/QD) в
формате HD, то после записи информации обычно ее нельзя прочитать.

Хотя дискета имеет форму диска, операционная система рассматривает
ее как последовательность секторов от нулевого до максимального.
Последний зависит от емкости дискеты. При этом первые 12 секторов (0-11)
содержат управляющие блоки MS DOS для любого типа диска. Следует
отметить, что размеры управляющих блоков на дискете (FAT и каталога)
приведены для дискетты 360 Kb и могут отличаться от стандартных: их
размер хранится в бутсекторе и не является фиксированным.

Дальнейшее содержимое диска зависит от того, является ли он
системным или нет. Для обычного диска сектора, начиная с 12, содержат
данные.

Для системного диска сектора с 12-го заняты файлами IBMIO.COM и
IBMDOS.COM (IO.SYS и MSDOS.SYS). Эти файлы являются скрытыми и не видны
командой DIR. Для того, чтобы рассмотреть их, можно воспользоваться утилитами
(Norton Commander, PCTools и т.д.). Помимо IBMIO.COM и IBMDOS.COM
на системном диске содержится файл COMMAND.COM (командный процессор).
Эта программа обеспечивает обработку вводимых команд и является одной из
наиболее часто используемых программ MS DOS. Поэтому она является излюбленной
мишенью для атаки файловыми вирусами. Дискета, содержащая
указанные три файла является минимальной конфигурацией операционной
системы MS DOS и ее удобно использовать в качестве дрозофилы для
бутовых вирусов. Поэтому приводимые в дальнейшем примеры ориентированы,
в основном на указанную минимальную конфигурацию:

г============T=== A:\ =T========T======¬
¦ Name ¦ Size ¦ Date ¦ Time ¦
¦Ibmbio -com¦ 22100¦ 3-17-87¦12:00p¦
¦Ibmdos -com¦ 30159¦ 3-17-87¦12:00p¦
¦command com¦ 25307¦ 3-17-87¦12:00p¦
¦ ¦ ¦ ¦ ¦

Структура управляющей информации на дискете

Первые 12 секторов (0-11) содержат три управляющих таблицы:
загрузчик (BOOT), таблицу распределения файлов (FAT), и корневой
каталог (root directory). Схема расположения этих секторов приведена на
рис.1.

г===T===T===T===T===T===T===T===T===T===T===T===T===T===T=. . .=T===¬
¦ B ¦ F ¦ F ¦ F ¦ F ¦ R ¦ R ¦ R ¦ R ¦ R ¦ R ¦ R ¦ ¦ ¦ . . . ¦ ¦
L===¦===¦===¦===¦===¦===¦===¦===¦===¦===¦===¦===¦===¦===¦=. . .=¦===-

а)

PC Tools Deluxe R4.30 Vol Label=None
-----------------------------Disk Mapping Service----------------------
Path=A:\*.*

Entire disk mapped 78% free space

Track 1 1 2 2 3 3 3
0 5 0 5 0 5 0 5 9
Double sided Bhhhhhhrrr------------------------------
Fhhhhhhrrr------------------------------
Side 0 Fhhhhhhrr-------------------------------
Dhhhhhhrr-------------------------------
----Dhhhhhrrr-------------------------------
Dhhhhhrrr-------------------------------
Side 1 hhhhhhrrr-------------------------------
hhhhhhrrr-------------------------------
hhhhhhrrr-------------------------------

Explanation of Codes
- Available  Allocated
B Boot record h hidden
F File Alloc Table r Read Only
D Directory x Bad Cluster

"F" to map files. ESC to return.

б)

Рис.1. Расположение секторов на дискете.

а: схематическое представление (границы кластеров для системных
секторов не показаны, поскольку нумерация кластеров начинается со
второго). Используемые обозначения: B - бутсектор; F - FAT; R -
корневой каталог;

б: карта, выдаваемая в режиме MAP PC Tools (в случае, если на дискете
есть сбойные кластеры, которые могут возникнуть в результате заражения
бутовым вирусом, они отчетливо видны при просмотре карты на экране
дисплая в виде мигающих символов "х"). Дискеты, имеющие сбойные
кластеры, должны быть дополнительно исследованы.

Бутсектор

Бутсектор всегда размещается в нулевом секторе дискеты и содержит
сведения о формате дискеты, а также короткую программу - загрузчик.
Структура бутсектора показана на рис.2. Формат рисунка соответствует
формату дампа на экране дисплея - по 16 символов в строке, что облегчает
интерпретацию дампа

0 1 2 3 4 5 6 7 8 9 A B C D E F
г-------T---T---T-------T-------T-------T---T---T---T---T-------¬
00 ¦JMP xx xx ¦'I' 'B' 'M' '3' '.' '3'¦SectSiz¦CS ¦ResSecs¦
¦---T---+---+---+---T---T---+---T---+---T---¦---T---¦---+---+---¦ --+----
10 ¦Fat¦RootSiz¦TotSecs¦Med¦FatSize¦TrkSecs¦HeadCnt¦HidnSec¦ ¦
¦---¦---+---¦---+---¦---¦---+---¦---+---¦---+---¦---+---¦---+----
20 ¦ код загрузчика (в конце загрузчика всегда расположены диагно=
L---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
30 стические сообщения и имена системных файлов)
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---T---+---+
1F0 ¦ 55 AA¦
+---+---+---+---+---+---+---+---+---+---+---+---+---+---¦---+----

Рис.2. Структура бутсектора

Используемые обозначения:
JMP - NEAR-переход на начало загрузчика;
8 байт, содержащих произвольную информацию, обычно заносимую
программой форматирования диска;
SectSiz - количество байтов в одном секторе;
CS (ClustSiz) - количество секторов в одном кластере;
ResSecs - количество резервных секторов (перед FAT);
Fat (FatCnt) - количество FAT;
RootSiz - макс.число 32-байтовых элементов корневого каталога;
TotSecs - общее число секторов на носителе (разделе диска);
Med (Media) - дескриптор носителя (то же, что 1-й байт FAT);
FatSize - количество секторов в одной FAT;
TrkSecs - количество секторов в одном треке;
HeadCnt - число головок чтения/записи (поверхностей);
HidnSec - количество спрятанных секторов;
- размер форматированной порции корневого сектора.

Как видно из рис.2, сведения о программе, с помощью которой
выполнялось форматирование, расположены с 4 байта.

На рис.3 показан бутсектор двухсторонней дискеты двойной
плотности (2D-2S), содержащей 40 треков и размеченный программой
FORMAT MS DOS 3.3. Бутсектор винчестера отличается только таблицей
параметров. Программа загрузчик остается неизменной. Другие версии
операционной системы имеют несколько отличающийся от приведенного
загрузчик, однако его структура неизменна: в конце сектора всегда
имеется текст диагностического сообщения и имена системных файлов (на
рис.3 - IO.SYS и MSDOS.SYS; для PC DOS используются имена IBMBIO.COM и
IBMDOS.COM). В конце бутсектор всегда содержит два идентификационных
байта : 55h AAh.


Следует обратить внимание, что первые три байта стандартного
бутсектора MS DOS 3.3 содержат EB 34 90. Несовпадение этих байтов при
просмотре бутсектора должно сразу настораживать, поскольку может
свидетельствовать о заражении вирусом.

Absolute sector 0000000, System BOOT

Disp ----------------- Hex codes--------------------
place-00 01 02 03 04 05 06 07 08 09 0A¦OB 0C 0D 0E 0F
ment ¦SectSiz
¦ ¦ClustSiz
----JMP--¬ ¦ ¦ ¦ResSecs
¦ ¦ ¦ ¦ ¦
0000:¦EB 34 90¦4D 53 44 4F 53 33 2E 33¦00 02¦02¦01 00 .4.MSDOS3.3.....
0010: 02 70 00 D0 02 FD 02 00 09 00 02 00 00 00 00 00 .p..............
0020: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 12 ................
0030: 00 00 00 00 01 00 FA 33 C0 8E D0 BC 00 7C 16 07 .......3.....|..
0040: BB 78 00 36 C5 37 1E 56 16 53 BF 2B 7C B9 0B 00 .x.6.7.V.S.+|...
0050: FC AC 26 80 3D 00 74 03 26 8A 05 AA 8A C4 E2 F1 ..&.=.t.&.......
0060: 06 1F 89 47 02 C7 07 2B 7C FB CD 13 72 67 A0 10 ...G...+|...rg..
0070: 7C 98 F7 26 16 7C 03 06 1C 7C 03 06 0E 7C A3 3F |..&.|...|...|.?
0080: 7C A3 37 7C B8 20 00 F7 26 11 7C 8B 1E 0B 7C 03 |.7|. ..&.|...|.
0090: C3 48 F7 F3 01 06 37 7C BB 00 05 A1 3F 7C E8 9F .H....7|....?|..
00A0: 00 B8 01 02 E8 B3 00 72 19 8B FB B9 0B 00 BE D6 .......r........
00B0: 7D F3 A6 75 0D 8D 7F 20 BE E1 7D B9 0B 00 F3 A6 }..u... ..}.....
00C0: 74 18 BE 77 7D E8 6A 00 32 E4 CD 16 5E 1F 8F 04 t..w}.j.2...^...
00D0: 8F 44 02 CD 19 BE C0 7D EB EB A1 1C 05 33 D2 F7 .D.....}.....3..
00E0: 36 0B 7C FE C0 A2 3C 7C A1 37 7C A3 3D 7C BB 00 6.|..."|.7|.=|..
00F0: 07 A1 37 7C E8 49 00 A1 18 7C 2A 06 3B 7C 40 38 ..7|.I...|*.;|@8
0100: 06 3C 7C 73 03 A0 3C 7C 50 E8 4E 00 58 72 C6 28 ."|s.."|P.N.Xr.(
0110: 06 3C 7C 74 0C 01 06 37 7C F7 26 0B 7C 03 D8 EB ."|t...7|.&.|...
0120: D0 8A 2E 15 7C 8A 16 FD 7D 8B 1E 3D 7C EA 00 00 ....|...}..=|...
0130: 70 00 AC 0A C0 74 22 B4 0E BB 07 00 CD 10 EB F2 p....t".........
0140: 33 D2 F7 36 18 7C FE C2 88 16 3B 7C 33 D2 F7 36 3..6.|....;|3..6
0150: 1A 7C 88 16 2A 7C A3 39 7C C3 B4 02 8B 16 39 7C .|..*|.9|.....9|
0160: B1 06 D2 E6 0A 36 3B 7C 8B CA 86 E9 8A 16 FD 7D .....6;|.......}
0170: 8A 36 2A 7C CD 13 C3 0D 0A 4E 6F 6E 2D 53 79 73 .6*|.....Non-Sys
0180: 74 65 6D 20 64 69 73 6B 20 6F 72 20 64 69 73 6B tem disk or disk
0190: 20 65 72 72 6F 72 0D 0A 52 65 70 6C 61 63 65 20 error..Replace
01A0: 61 6E 64 20 73 74 72 69 6B 65 20 61 6E 79 20 6B and strike any k
01B0: 65 79 20 77 68 65 6E 20 72 65 61 64 79 0D 0A 00 ey when ready...
01C0: 0D 0A 44 69 73 6B 20 42 6F 6F 74 20 66 61 69 6C ..Disk Boot fail
01D0: 75 72 65 0D 0A 00 49 4F 20 20 20 20 20 20 53 59 ure...IO SY
01E0: 53 4D 53 44 4F 53 20 20 20 53 59 53 00 00 00 00 SMSDOS SYS....
01F0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 55 AA ..............U.
L--T---
L--- идентификационные
байты

Рис.3. Бутсектор дискеты 2D-2S, размеченной программой FORMAT

При интерпретации дампа следует обратить внимание на то, что
микропроцессор 8086 записывает в память машинное слово (2 байта)
в формате "младший байт""старший байт". Поэтому при интерпретации
двухбайтовых полей для получения правильного значения следует
переставить байты местами. Например, поле SectSiz содержит "00 02", т.е.
его значение равно 0200h - 512 байт.

Таблица распределения файлов (FAT)

На дискетах 360К под FAT отведены четыре сектора - текущее состояние
FAT в секторах 1,2 и его копия в секторах 3,4. Дискеты 720К содержат
основную FAT в секторах 1,2,3 и ее копию в секторах 4,5,6.

FAT представляет собой карту дискового пространства, распределяемого
под файлы, и содержит по три шестнадцатеричные цифры для каждого имеющегося
на диске кластера. Каталог (см. ниже) содержит номер первого
кластера, занятого файлом; в свою очередь, в каждом элементе содержится
указатель на следующий кластер файла. Если кластер является последним
кластером файла, то он содержит FFF.

Таким образом, MS DOS может отслеживать последовательность кластеров,
принадлежавших файлу, независимо от фактического расположения их на
диске. Для незанятых кластеров указатель имеет 000. Если кластер поврежден
и MS DOS не может считать или записать в него информацию, то такой
кластер содержит FF7 (признак сбойного кластера), и MS DOS не использует
отмеченные таким образом кластеры при распределении.


Таблица распределения файлов по сути является односвязным списком,
который DOS использует для отслеживания физического расположения данных
на диске и для поиска свободной памяти для новых файлов. Слово по смещению
1Ah в элементе оглавления содержит номер первого кластера в цепочке
распределения файла. Соответствующий элемент FAT либо указывает конец
цепочки, либо ссылается на следующий элемент, и т.д.

FAT может состоять из 12-битовых или 16-битовых элементов. 12-битовые
элементы используются для дискет. 16-битовые элементы FAT были введены,
начиная с DOS 3.0, когда возникла необходимость управления 20-мегабайтным
винчестером.

Поскольку 12 битовые элементы трудно анализировать на обычном
дампе, для анализа FAT целесообразно использовать Norton Utilities,
выдающую разобранный на 12 битовые элементы (полуинтерпретированный) дамп
(рис.5).

г FAT area ======================================================= FAT format =¬
¦ Sector 1 in 1st copy of FAT Cluster 2, hex 2 ¦
¦ ¦
¦ 3 4 5 6 7 8 9 10 11 12 13 14 ¦
¦ 15 16 17 18 19 20 21 22 23 "EOF" 25 26 ¦
¦ 27 28 29 30 31 32 33 34 35 36 37 38 ¦
¦ 39 40 41 42 43 44 45 46 47 48 49 50 ¦
¦ 51 52 53 "EOF" 55 56 57 58 59 60 61 62 ¦
¦ 63 64 65 66 67 68 69 70 71 72 73 74 ¦
¦ 75 76 77 78 "EOF" 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ 0 0 0 0 0 0 0 0 0 0 0 0 ¦
¦ ¦
¦ Press Enter to continue ¦
1Help 2Hex 3Text 4Dir 5FAT 6Partn 7 8Choose 9Undo 10QuitNU

Рис.5. Полуинтерпретированный дамп FAT минимальной DOS,
полученный с помощью Norton Utilities

На рис. 5 отчетливо видны три цепочки кластеров для трех
имеющихся в минимальной DOS файлов. Если диск был предварительно сжат,
т.е. файлы расположены друг за другом и занимают последовательные
сектора (что имеет место для дискеты с минимальной DOS), цепочки
кластеров в FAT вырождаются в возрастающую последовательность номеров и
при минимальном навыке разрушенную FAT можно восстанавить вручную.
Поэтому регулярное сжатие диска с помощью утилиты NC или COMPRESS
является приемом, значительно повышающим надежность хранения информации.

Корневой каталог

MS DOS хранит информацию о файлах в каталогах, которые образуют
древовидную структуру. Корневой каталог хранит сведения о всех содержащихся
в нем файлах и подкаталогах. Он занимает семь секторов, начиная с
сектора 5. Каждый элемент корневого каталога занимает 32 байта. Очевидно,
в одном секторе может разместиться 16 элементов. Это означает, что в
семи секторах корневого каталога могут быть описаны до 112 файлов и подкаталогов.
Структура каталога показана на рис.6.

0 1 2 3 4 5 6 7 8 9 A B C D E F
г-------T-------T-------T-------T-------T---T---T-------T-------¬
00 ¦ name ¦ ext ¦atr¦ резерв ¦
L---+---+---+---+---+---T---+---+---+---T---¦---+---+---+---+---+
10 резерв ¦ time ¦ date ¦ClstrNo¦ размер файла ¦
+---+---+---+---+---+---¦---+---¦---+---¦---+---¦---+---+---+---+

Рис.4. Структура элемента каталога
Границы полей отмечены двойной линией. Используются следующие обозначения
(в квадратных скобках указаны смещение в 16-ричной системе счисления и
длина):
name - имя файла [+0; 8];
ext - расширение имени [+8;3];
atr - атрибут файла [+0Bh;1];
резерв [+0Ch;0Ah];
time - время создания [+16h;2];
date - дата создания [+18h;2];
ClstrNo - номер начального кластера данных (связь с FAT) [+1Ah; 2];
размер файла - размер файла в байтах [+1Ch;4];

Как видно из рис.6, имя файла состоит не более чем из восьми
символов, дополненных справа пробелами. За именем следует
факультативное трехсимвольное расширение. При длине менее трех
символов оно также дополняется пробелами.

Байт атрибутов позволяет MS DOS идентифицировать статус файла, по
которому подразумевается некоторая (с точки зрения защиты от вирусов -
иллюзорная) степень защиты от несанкционированных действий пользователя.
Не все биты байта атрибутов используются. Первый (наименее значащий) бит
показывает, что это скрытый файл (не выдается командой DIR). Второй бит
означает, что это системный файл, в отличие от пользовательских файлов.

Номер первого кластера позволяет определить место в FAT, занимаемое
файлом. Если файл является каталогом (подкаталогом), то он имеет
установленный бит 4 байта атрибутов.

Дамп главного каталога для минимальной конфигурации приведен на
рис.7.

PC Tools Deluxe R4.30
----------------------------Disk View/Edit Service----------------------------
Path=A:
Absolute sector 0000005, System ROOT, Disk Abs Sec 0000005

Displacement ----------------- Hex codes-------------------- ASCII value
0000(0000) 49 42 4D 42 49 4F 20 20 43 4F 4D 27 00 00 00 00 IBMBIO COM'
0016(0010) 00 00 00 00 00 00 00 60 AC 11 02 00 54 56 00 00
0032(0020) 49 42 4D 44 4F 53 20 20 43 4F 4D 27 00 00 00 00 IBMDOS COM'
0048(0030) 00 00 00 00 00 00 00 60 AC 11 18 00 CF 75 00 00
0064(0040) 43 4F 4D 4D 41 4E 44 20 43 4F 4D 21 00 00 00 00 COMMAND COM!
0080(0050) 00 00 00 00 00 00 00 60 71 0E 36 00 DB 62 00 00
0096(0060) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0112(0070) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0128(0080) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0144(0090) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0160(00A0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0176(00B0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0192(00C0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0208(00D0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0224(00E0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
0240(00F0) 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

Home=beg of file/disk End=end of file/disk
ESC=Exit PgDn=forward PgUp=back F2=chg sector num F3=edit F4=get name

Рис.7. Дамп первого сектора FAT для минимальной DOS,
полученный с помощью PC TOOLS

Поле атрибутов файла

Поле атрибутов файла позволяет присваивать файлу определенный
"статус" относительно тех или иных операций. Не все биты байта
атрибутов используются. Биты нумеруются с нуля. Наименее значащий
(нулевой) бит соответствует аттрибуту READ ONLY, затем идут биты,
соответствующие атрибутам HIDDEN и SYSTEM. Биты нумеруются с нуля.
Атрибут READ ONLY ("только чтение") запрещает выполнение операций
удаления и модификации данного файла. Если установлен первый бит
(атрибут HIDDEN), то данный файл является так называемым скрытым файлом
(не выдается командой DIR). Второй бит означает, что это системный файл,
в отличие от пользовательских файлов. Используемые биты байта атрибутов
показаны на рис.8.

г7T6T5T4T3T2T1T0¬
¦ ¦a¦d¦v¦s¦h¦r¦
L-+-+T+T+T+T+T+T- бит *** маска ***
¦ ¦ ¦ ¦ ¦ L= 0: 1 = только чтение (READ ONLY) (01h)
¦ ¦ ¦ ¦ L=== 1: 1 = спрятанный (HIDDEN) (02h)
¦ ¦ ¦ L===== 2: 1 = системный (SYSTEM) (04h)
¦ ¦ L======= 3: 1 = метка тома (08h)
¦ L========= 4: 1 = элемент подоглавления (10h)
L=========== 5: архив. 1=копия файла НЕ архивировалась (20h)

Рис.8. Формат поля атрибутов файла

Как видно из рис.8, метка тома представляет собой просто файл со
специальным атрибутом. Одна из функций DOS (21-43h) позволяет вирусу
"молча" изменять любой бит байта атрибутов, включая "только чтение",
что является явным дефектом реализации этой функции, существенно
облегчающим жизнь создателям вирусов. Впрочем, при отсутствии страничной
организации памяти и режима супервизора (как в старой, доброй системе
360/370), радикальных мер по исправлению этой ошибки, по сути, и
предложить нельзя.


Поля даты и времени

гFTETDTCTBTAT9T8+7T6T5T4T3T2

Список страниц

Закладка в соц.сетях

Купить

☏ Заказ рекламы: +380504468872

© Ассоциация электронных библиотек Украины

☝ Все материалы сайта (включая статьи, изображения, рекламные объявления и пр.) предназначены только для предварительного ознакомления. Все права на публикации, представленные на сайте принадлежат их законным владельцам. Просим Вас не сохранять копии информации.