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

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

страница №44

T1T0¬
¦ час ¦ минута ¦ сек/2 ¦
L-+-+-+-+-¦-+-+-+-+-+-¦-+-+-+-+--
L===T===- L====T====- L===T===-
¦ ¦ L==== 2-секундные единицы (0-31)
¦ L=============== минута (0-63)
L========================== час (0-31)

гFTETDTCTBTAT9T8+7T6T5T4T3T2T1T0¬
¦ год ¦ месяц ¦ день ¦
L-+-+-+-+-+-+-¦-+-+-+-¦-+-+-+-+--
L=====T=====- L==T==- L===T===-
¦ ¦ L==== день (0-31)
¦ L============= месяц (0-15)
L======================== год - 1980 (0-127)

Рис.9. Формат полей даты и времени

Следует обратить внимание на то, что несовпадение систем представления
часов, секунд и минут с двоичной системой приводит к наличию некоторого
"запаса" в формате поля даты, что позволяет устанавливать "абсурдное"
время типа 31 час 63 минуты 62 секунды. Поскольку ни одна из
стандартных команд MS DOS не выдает количество секунд во времени образования
файла, то значение "62 секунды" поля секунд может использоваться
(и используется) вирусами для специальных целей, например для отметки о
том, что данный файл был заражен.

Аналогично может использоваться поле даты. Год создания файла
храниться в IBM PC в виде остатка после вычитания 1980 (даны создания
данного компьютера). Некоторые вирусы используют этот факт для пометки
зараженных файлов: при заражении они добавляют к году создания файла
100. Это приращение не видно "невооруженным глазом", поскольку как
команда DIR, так и большинство оболочек выдает только две последние
цифры года. Один из вирусов устанавливает для зараженных файлов 13
месяц.

Пример элемента каталога показан на рис.10.

номер начального кластера
Элемент каталога ¦
г---------------T-----T-T---T---T---T-V-T-------¬
¦E X A M P L E ¦C O M¦a¦...¦tim¦dat¦08 ¦ длина ¦
L-+-+-+-+-+-+-+-+-+-+-+-+---+-+-+-+-+-+-+-+-+-+--
¦
00 01 02 03 04 05 06 07 ¦8 09 0A 0B 0C 0D 0E 0F
---¬---¬---¬---¬---¬---¬---¬---¬-V-¬---¬---¬---¬---¬---¬---¬---¬
00 ¦ID¦¦FF¦¦03="04="05="FF¦¦00¦¦00¦¦09="0A="0B="15¦¦00¦¦00¦¦00¦¦00¦
L---L---L---L---L---L---L---L---L---L---L---L+--L---L---L---L---
г=======================-
---¬---¬---¬---¬---¬-V-¬---¬---¬---¬---¬---¬---¬---¬---¬---¬---¬
10 ¦00¦¦00¦¦00¦¦00¦¦00¦¦16="17="19¦¦F7¦¦1A="1B="FF¦¦00¦¦00¦¦00¦¦00¦
L---L---L---L---L---L---L---L+--L---LA--L---L---L---L---L---L---
L=======-

Рис.10. Пример элемента каталога и цепочки элементов FAT

Как видно из рис.10, файл EXAMPLE.COM занимает 10 кластеров.
Первый кластер - это кластер 08, последний кластер - 1B. Цепочка
кластеров - 8, 9,0A,0B,15,16,17,19,1A,1B. Каждый элемент указывает на
следующий элемент цепочки, а последний элемент содержит специальный
код. Кластер 18 поме- чен как плохой и не входит в цепочку
распределения. Кластеры 6,7, 0C-14 и 1C-1F пусты и доступны для
распределения. Еще одна цепочка, возможно, начинается с кластера 2
(при условии, что не показанные на рис.10 элементы каталога равны нулю)
и кончается кластером 5. Чтобы узнать имя соответствующего файла,
нужно отыскать элемент каталога с начальным номером кластера 02.
Как уже отмечалось, кластеры нумеруются, начиная с друх (нулевой элемент
используется для маркировки свободных кластеров, а поле первого кластера
используется для поля Media

Подкаталоги

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

Каждый подкаталог содержит два элемента, создаваемых MS DOS, которые
обеспечивают координаты данного подкаталога в дереве иерархической
файловой системы. Первым является элемент с именем ".", указывающий на
первый кластер в самом подкаталоге, а второй с именем ".." указывает на
первый кластер родителя данного каталога. Эти два элемента также имеют
установленный бит 4 байта атрибутов.

Удаление файлов

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

Таблица разделов диска - Partition Table
(только для винчестера)

Самый первый сектор твердого диска содержит так называемый Master
Boot Record (MBR). Название "главный бутсектор" (буквальный перевод
термина Master Boot Record - главная загрузочная запись) связано
с тем, что MBR первым загружается в оперативную память, если загрузка
операционной системы выполняется с винчестера.

MBR состоит из выполняемого кода и таблицы разделов. Последняя
расположена в конце сектора и состоит из четырех 16-байтовых элементов.
Информация в таблицу разделов заносится утилитой FDISK или аналогичной
ей несистемной утилитой. Просматривать таблицу разделов удобнее всего с
помощью Norton Utilities. Во время загрузки ROM-BIOS загружает главную
корневую запись и передает управление на ее код. Этот код считывает
таблицу разделов, чтобы определить раздел, помеченный как загружаемый
(Bootable). Затем в память считывается бутсектор из этого раздела и
ему передается управление. Отсюда следует, что заражая винчестер,
вирус может заменять не только бутсектор, но и таблицу разделов. И
действительно, существует несколько вирусов. использующих этот способ.

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 ¦ начало кода начальной загрузки MBR
L---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

10


+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
+---+---+---+---+---+---+---+---+---+---+---+---+---+---T---+---+
1B0 конец кода начальной загрузки MBR ¦ Первый
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1C0 раздел винчестера ¦ Второй
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1D0 раздел винчестера ¦ Третий
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1E0 раздел винчестера ¦ Четвер-
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
1F0 тый раздел винчестера ¦ 55 AA¦
+---+---+---+---+---+---+---+---+---+---+---+---+---+---¦---+----

Рис.11. Структура таблицы разделов винчестера

--------T-------T-------T-------T-------T-------T-------T---T---¬
10 ¦Bot¦HdS¦
г---+---T---+---T---+---T---+---+---+---T---+---+---+---+---¦----
¦Sec Cyl¦Sys HdE¦Sec Cyl¦младш старш ¦младш старш ¦
L---+---¦---+---¦---+---¦---+---+---+---¦---+---+---+---¦---+---+

Рис.12. Структура элемента раздела
(поля показаны в тех положениях, в которых они расположены в дампе)

----¬
+0 1 ¦Boot Флаг загрузки: 0=не загружаемый, 80h = загружаемый
+---+
+1 1 ¦HdS¦ Начало раздела: номер головки
+---+---¬
+2 2 ¦Sec Cyl¦ Начало раздела: сектор/цилиндр корневого сектора
+---+----
+4 1 ¦Sys¦ Код системы: 0=неизв., 1=DOS 12-бит FAT, 4=16-бит
+---+
+5 1 ¦HdE¦ Конец раздела: номер головки
+---+---¬
+6 2 ¦Sec Cyl¦ Конец раздела: сектор/цилиндр последнего сектора
+---+---+---T---¬
+8 4 ¦ младш старш ¦ Относительный номер начального сектора
+---+---+---+---+
+0Ch 4 ¦ младш старш ¦ Размер (число секторов)
L---+---+---+----
+10h начало следующего элемента раздела (или 0AA55h для послед-
него элемента)

Значения цилиндра и сектора занимают 10 и 6 бит соответственно:

[616]--Значения цилиндра и сектора занимают 10 и 6 бит соответственно:

гFTETDTCTBTAT9T8+7T6T5T4T3T2T1T0¬
¦c c c c c c c c C C¦s s s s s s¦
L-+-+-+-+-+-+-+-+-+-¦-+-+-+-+-+--

L-T--
L-- биты, обозначенные большими буквами С
являются старшими, т.е. при дешифровке
номера цилиндра они приписываются слева,
а не справа

Значение "относительного сектора" по смещению 8 в каждом разделе
эквивалентно цилиндру, дорожке и сектору начального адреса раздела. Относительный
сектор 0 совпадает с цилиндром 0, дорожкой 0, сектором 1.
Относительный номер сектора прирастает сначала по каждому сектору на головке,
затем по каждой дорожке и, наконец, по каждому цилиндру.
Применима формула:

отн_сек = (#Цил * сек_на_дор * дор_на_цил)+(#Гол * сек_на_дор)+(#Сек-1)

Разделы винчестера начинаются с начала четного номера цилиндра, за
исключением первого раздела, который может начинаться с цилиндра 0,
дорожки 0, сектора 2 (поскольку сектор 1 - это главный бутсектор), а
обычно начинается со следующей дорожки, оставляя остальные сектора
нулевой дорожки пустыми. Последнее обстоятельство используется рядом
бутовых вирусов для хранения там своего хвоста, поэтому указанных
секторов рекомендуется периодически просматривать.

ПРИЛОЖЕНИЕ 7

ИСПОЛНЯЕМЫЕ ФАЙЛЫ И СВЯЗАННЫЕ С НИМИ СИСТЕМНЫЕ БЛОКИ

РАСПРЕДЕЛЕНИЕ ОПЕРАТИВНОй ПАМЯТИ В MS DOS

Оперативная память в MS DOS распределяется в соответствии с
приводимой таблицей.
-----------T-----T---T-----------------------------------------------¬
¦ ¦ ¦За-¦ ¦
¦ Адрес ¦Длина¦ви-¦ ¦
¦ сегмент: ¦(де- ¦си-¦ Наименование и описание ¦
¦смещение) ¦сят.)¦мо-¦ ¦
¦ ¦ ¦сть¦ ¦
¦==========+=====+===+===============================================¦
¦0000:0000 ¦1024 ¦ - ¦ Таблица векторов прерываний: ¦
¦ ¦ ¦ ¦ 256 4-байтовых адресов ¦
+----------+-----+---+-----------------------------------------------+
¦0040:0000 ¦ 256 ¦ - ¦ Область данных ROM-BIOS ¦
+----------+-----+---+-----------------------------------------------+
¦0050:0000 ¦ 512 ¦ - ¦ Область данных DOS ¦
+----------+-----+---+-----------------------------------------------+
¦xxxx:0000 ¦ 8928¦Ver¦ Код BIOS (считанный из IO.SYS или IBMBIO.COM ¦
¦ ¦ ¦ ¦ на диске загрузки) ¦
+----------+-----+---+-----------------------------------------------+
¦xxxx:0000 ¦29920¦Ver¦Обработчики прерываний DOS, ¦
¦ ¦ ¦ ¦ включая INT 21h (MSDOS.SYS или IBMDOS.COM) ¦
+----------+-----+---+-----------------------------------------------+
¦xxxx:0000 ¦ ¦Con¦ DOS: буфера, области данных ¦
¦ ¦ ¦ ¦ и устанавливаемые драйверы ¦
+----------+-----+---+-----------------------------------------------+
¦xxxx:0000 ¦ ¦Ver¦ Резидентная порция COMMAND.COM ¦
¦ ¦ ¦ ¦ (стандартный - около 4K длиной) ¦
¦ ¦ ¦ ¦ включает обработчики ¦
¦ ¦ ¦ ¦ INT 22h, INT 23h и INT 24h ¦
¦==========+=====+===+===============================================+=========¬
¦xxxx:0000 ¦ ¦ ¦ Резидентные программы и данные ¦ область ¦
¦ ¦ ¦ ¦ (постоянно резидентные утилиты и т.д. ¦ пользо- ¦
+----------+-----+---+-----------------------------------------------+ вателя ¦
¦xxxx:0000 ¦ ¦ ¦ Текущая выполняемая прикладная ¦ ¦
¦ ¦ ¦ ¦ программа (.COM или .EXE). ¦ ¦
¦ ¦ ¦ ¦ Программе в начале выделяется ¦ ¦
¦ ¦ ¦ ¦ память до 640K (адреса A000:0000) ¦ ¦
¦ ¦ ¦ ¦ или до максимального для данного ¦ ¦
¦ ¦ ¦ ¦ компьютера адреса ¦ ¦
+----------+-----+---+-----------------------------------------------+ ¦
¦xxxx:0000 ¦ ¦Con¦ Транзитная часть COMMAND.COM (содержит интер-¦ ¦
¦ ¦ ¦ ¦ претатор команд, внутренние команды и т.п. ¦ ¦
¦ ¦ ¦ ¦ Перезагружается, если кто-то перекроет ее. ¦ ¦
¦==========+=====+===+===============================================+=========-
¦A000:0000 ¦ ¦ - ¦ EGA-память для некоторых видео режимов ¦Граница
+----------+-----+---+-----------------------------------------------+640К зоны
¦B000:0000 ¦ ¦ - ¦ Видео память монохромного адаптера ¦
¦ ¦ ¦ ¦ и адаптера типа Гекулес (Hercules) ¦
+----------+-----+---+-----------------------------------------------+
¦B800:0000 ¦ ¦ - ¦ Видео память CGA ¦
¦ ¦ ¦ ¦ (также страница 2 для Hercules) ¦
¦==========+=====+===+===============================================¦
¦C800:0000 ¦ ¦ - ¦ Внешний код ROM. ROM-BIOS ищет здесь ¦
¦ до ¦ ¦ ¦ (в 2K-блоках) код, выполняемый при загрузке. ¦
¦E000:0000 ¦ ¦ ¦ Этот код обычно инсталлирует обработчик ¦
¦ ¦ ¦ ¦ устройства (дополнит. BIOS винчестера или EGA)¦
+----------+-----+---+-----------------------------------------------+
¦E000:0000 ¦ ¦ - ¦ Модули ROM материнской платы ¦
¦ до ¦ ¦ ¦ в блоках по 64K (только AT) ¦
¦E000:FFFF ¦ ¦ ¦ ¦
+----------+-----+---+-----------------------------------------------+
¦F600:0000 ¦ ¦ - ¦ ROM-резидентный интерпретатор BASIC (для ори- ¦
¦ ¦ ¦ ¦ гинальных IBM/PC), обработчик ошибок при ¦
¦ ¦ ¦ ¦ загрузке для клонов ¦
+----------+-----+---+-----------------------------------------------+
¦FE00:0000 ¦ ¦ - ¦ ROM-BIOS: POST и код загрузки, ¦
¦ ¦ ¦ ¦ обработчики прерываний и прочее ¦
+----------+-----+---+-----------------------------------------------+
¦F000:FFF0 ¦ ¦ - ¦ JMP на программу, выполняемую ¦
¦ ¦ ¦ ¦ при включении или сбросе ¦
+----------+-----+---+-----------------------------------------------+
¦F000:FFF5 ¦ ¦ - ¦ Дата издания BIOS (в ASCII) ¦
+----------+-----+---+-----------------------------------------------+
¦F000:FFFE ¦ ¦ - ¦ Идентификационный код IBM PC. ¦
L----------+-----+---+------------------------------------------------

Примечания:

1. В графе зависимость знак "-" означает, что приведенные в
предыдущих графах значения постоянны, "Ver" - зависят от версии MS DOS,
"Соn" - от содержимого CONFIG.SYS.

2. Приведенные значения соответствуют IO.COM и MSDOS.COM MS DOS
версии 3.3.

BIOS хранит двухбайтовую переменную по адресу 0040:0013, которая
сообщает количество килобайт используемой памяти (обьем системной
памяти). Это значение можно либо посмотреть непосредственно, используя,
скажем утититу LOW или PEPORES (СП 2-8) или получить как часть протокола
некоторых утитит, например SYSMAP. Для большинства машин это 640(280h)
или 512 (200h). Бутовые вирусы обычно уменьшают это значение при своей
инсталляции, "откусывая" необходимое им число килобайт. Таким образом
обьем системной памяти уменьшается и это уменьшение является
свидетельством того, что "что то не так". Прерывание 12h BIOS проверяет
установку переключателей на системной плате и возвращает в регистр AX
обьем установленной системной памяти в килобайтах. Его можно вызвать из
любого отладчика, например DEBUG.

Память свыше 1 мегабайта доступна на компьютерах класса AT через
функцию BIOS INT 15h, и в основном используется DOS для операций
с виртуальными дисками.

ПРЕФИКС ПРОГРАММНОГО СЕГМЕНТА (PSP)

Когда программа начинает выполнение, DS:0000 и ES:0000 указывают на
начало PSP этой программы. Информация PSP позволяет выделить имена
файлов и опции из строки команд, узнать объем доступной памяти,
определить окружение и т.д.

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 ¦INT 20h¦MemTop ¦Rsv¦CALL смещ. сегмент¦Ад.зав (int22)¦Ctrl-
+---+---+---+---¦---¦---T---+---+---+---+---+---+---+---+---+---+
10 Break. ¦Critical Error ¦ Резервная область DOS
+---+---¦---+---+---+---¦---+---+---+---¦---+---T---+---+---+---+
20 Резервная область DOS Резервная область DOS ¦EnvSeg ¦ Резер-
+---+---+---+---+---+---+---+---+---+---+---+---¦---+---¦---+---+
30 вная область DOS Резервная область DOS Резервная область DOS
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
40 Резервная область DOS (продолжение)
+---+---+---+---+---+---+---+---+---+---+---+---T---+---+---+---+
50 Резервная область DOS (окончание) ¦ Форматирован-
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
60 ная область параметра 1 ¦ Форматирован-
+---+---+---+---+---+---+---+---+---+---+---+---¦---+---+---+---¬
70 ная область параметра 2 ¦
г---T---+---+---+---+---+---+---+---+---+---+---+---+---+---+----
80 ¦len¦ неформатированная область параметров (символы из командной
L---¦---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
90 строки DOS )
+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
г---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+
100 ¦ начало кода для COM или EXE-файла
L---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

Рис.9. Структура префикса программного сегмента

Первым полем префикса программного сегмента (рис.9) является
команда INT 20h [0;2] - программы могут выполнять на нее переход с
помощью JMP или RET для выхода. Поле MemTop содержит адрес вершины
доступной памяти системы в параграфах[+2;2]; Далее один байт
резервируется - поле Rsv[+4;1]. Следующее поле[5;5] содержит команду
длинного перехода(FAR CALL) к диспетчеру функций DOS. Поле Avail [6;2]
содержит доступные байты в программном сегменте (только для файла
COM). Далее следуют три четырехбайтовых поля имеющие формат "смещ."
"сегмент" и содержащие соответственно адрес завершения(см. INT
22h)[+0Ah;4], адрес обработки Ctrl-Break(см. INT 23h)[+0h;4] и
обработчик критических ошибок (см. INT 24h)[+12h;4]; За ними идет
резервная область DOS [+16h;16h-2B]. Поле EnvSeg[+2Ch;2] содержит
сегментный адрес окружения DOS. Далее следует еще одна резервная
область DOS [+2Eh;2Eh-5B]; Форматированная область первого параметра
[+5Ch;10h] содержит FCB для 1-го параметра. Аналогично форматированная
область второго параметра [+6Ch;14h] содержит FCB для 2-го параметра.

Поле Len [+80h;1] содержит длину области UPA (с адреса 81h) также
смещение умалчиваемой DTA. За полем Len расположена неформатированная
область параметров содержит символы, полученные из командной строки
DOS[+81h;7Fh]; (кроме директив переназначения).

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

БЛОК УПРАВЛЕНИЯ ПАМЯТЬЮ (MCB)

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

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-------¬
10 ¦Тип¦Вл-лец ¦Размер ¦ зарезервировано зарезервировано ¦
¦---¦---+---¦---+---¦---+---+---+---+---+---+---+---+---+---+---+
20 ¦ Начало блока памяти (для блока с загруженной программой - PSP)
L---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+---+

Рис.10. Структура блока управления памятью

Блоки управления памятью всегда выравнены на границу параграфа
("сегмент блока"). Поле тип - может принимать два значения 'M'(4Dh),
если за этим блоком есть еще блоки и 'Z'(5Ah), если данный блок
является последним; поле "Владелец"(соответствующая графа обычно
обозначается Parent, Owner) содержит параграф владельца (для FreeMem).
Если 0, то владельцем является сам данный блок; поле "Размер"(Size)
содержит число параграфов в этом блоке. Блок памяти - начало
информации, расположенной в данном блоке. Общий обьем этой информации
равен (Размер*10h) байт. Сегментный адрес начала блока памяти
возвращает функция 48h AllocMem. Для блока M-типа следующий блок
находится по адресу (сегмент_блока+Размер):0000, а для блока Z-типа
выражение (сегмент_блока+Размер):0000 всегда указывает на конец
оперативной памяти (для систем с 640K это адрес: a000:0000h). После
функции 4Bh Exec, Z-блок начинается с (PSP-1):0000 нового процесса

В списке резидентных резидентных программ могут оказаться и
простые резидентные вирусы, хотя более сложные резидентные вирусы
маскируются таким образом, чтобы обойти данную возможность обнаружения.
Список MCB можно получить с помощью специальных утилит ( например
SYSMAP, MEMANAL, RELEASE и др.). Эти утилиты отличаются удобством и
степенью подробности выдаваемой информации. Ниже приведен протол,
выдаваемые утилитой SYSMAP.

PC SYSTEM MAP V3.00 Video Trends Software 1989
-----------------------------------------------------------------------------
Segment Size Program Parent Cooked Vectors
0000 001,024 INTERRUPT VECTOR TABLE
0040 000,256 BIOS DATA AREA
0050 000,512 DOS COMMUNICATION AREA 1E
0070 008,928 IO.SYS BOOT RECORD 01 03 04 0F 13 1B 29 EF F3 F7 FA
029E 029,920 MSDOS.SYS IO.SYS 20 26 2A 2B 2C 2D 31 32 34 35 36 37
38 39 3A 3B 3C 3D 3E 3F
09ED 012,784 EMMXXXX0 IO.SYS 67 F6
0D0C 000,112 PCKXXXX0 IO.SYS 25
0D13 000,768 1 units IO.SYS 19
0D43 000,928 4DOSSTAK IO.SYS
0D7D 001,072 HANDLE TABLE IO.SYS
0DC0 000,224 FCBs TABLE IO.SYS
0DCE 020,592 DOS BUFFERS IO.SYS EE FF
12D5 000,576 DRIVE TABLES IO.SYS
12F9 003,824 DOS STACKS IO.SYS 02 0E 70 76
13E9 002,992 COMMAND.COM COMMAND.COM 2E
14A5 000,512 COMMAND.COM ENVIRONMENT
14C6 000,080 RELEASE.COM ENVIRONMENT
14CC 003,488 RELEASE.COM COMMAND.COM 21 27
15A7 000,128 MOUSE.COM ENVIRONMENT
15A7 000,128 MOUSE.COM ENVIRONMENT
15B0 010,048 MOUSE.COM COMMAND.COM 0A 33
1825 000,128 CPANEL.COM ENVIRONMENT
182E 032,928 CPANEL.COM COMMAND.COM
2039 000,128 UNIEGA.COM ENVIRONMENT
2042 006,480 UNIEGA.COM COMMAND.COM 10 1F 44
21D8 000,128 UNIKBD.COM ENVIRONMENT
21E1 000,848 UNIKBD.COM COMMAND.COM 16
2217 000,128 NC.EXE ENVIRONMENT
2220 012,896 NC.EXE COMMAND.COM
2547 000,128 COMMAND.COM ENVIRONMENT
2550 000,512 COMMAND.COM ENVIRONMENT
2571 000,144 PCMAP1.EXE ENVIRONMENT
257B 002,736 FREE UNKNOWN
2627 000,128 TXTSCR.COM ENVIRONMENT
2630 000,976 TXTSCR.COM UNKNOWN 08 09 28
266E 002,896 COMMAND.COM COMMAND.COM 00 22 23 24 2F
2724 025,120 PCMAP1.EXE COMMAND.COM

Dos Memory: 655,360 bytes
Block Memory: 655,360 bytes

Free Memory: 469,920 bytes

Как видно из приведенной карты, обычно в MS DOS используется порядка
десятка резидентных программ различного назначения и выявить "лишнюю"
даже если она видна, не так просто. Поэтому желательно иметь распечатку
"эталонной" карты памяти с которой можно сравнить имеющуются.

ФОРМАТ ИСПОЛНЯЕМЫХ ПРОГРАММ В MS DOS

В MS DOS имеются два основных формата исполняемых программ: СOM и
EXE. Файл COM-формата - это двоичный образ кода и данных программы.
Такой файл должен занимать менее 64K. Файл EXE-формата содержит
специальный заголовок, при помощи которого загрузчик выполняет настройку
ссылок на сегменты в загруженном модуле.

Ввиду сегментации адресного пространства процессора 8088/86/286 и
того факта, что переходы (JMP) и вызовы (CALL) используют относительную
адресацию, оба типа программ (EXE и COM) могут выполняться в любом месте
памяти. Программы обычно не пишутся в предположении, что они будут
загружаться с определенного адреса (за исключением некоторых
самозагружающихся, защищенных от копирования игровых программ).
Программы

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

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

Купить

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

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

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