Главная · Поиск книг · Поступления книг · Top 40 · Форумы · Ссылки · Читатели

Настройка текста
Перенос строк


    Прохождения игр    
Demon's Souls |#13| Storm King
Demon's Souls |#12| Old Monk & Old Hero
Demon's Souls |#11| Мaneater part 2
Demon's Souls |#10| Мaneater (part 1)

Другие игры...


liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня
Rambler's Top100
Образование - Безруков Н.Н. Весь текст 1232.53 Kb

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

Предыдущая страница Следующая страница
1 ... 91 92 93 94 95 96 97  98 99 100 101 102 103 104 ... 106
ГДДДДДДДДДД†ДДДДД†ДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
¦F600:0000 ¦     ¦ - ¦ ROM-резидентный интерпретатор BASIC (для ори- ¦
¦          ¦     ¦   ¦ гинальных IBM/PC), обработчик ошибок при      ¦
¦          ¦     ¦   ¦ загрузке для клонов                           ¦
ГДДДДДДДДДД†ДДДДД†ДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
¦FE00:0000 ¦     ¦ - ¦ ROM-BIOS: POST и код загрузки,                ¦
¦          ¦     ¦   ¦ обработчики прерываний и прочее               ¦
ГДДДДДДДДДД†ДДДДД†ДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
¦F000:FFF0 ¦     ¦ - ¦ JMP на программу, выполняемую                 ¦
¦          ¦     ¦   ¦ при включении или сбросе                      ¦
ГДДДДДДДДДД†ДДДДД†ДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
¦F000:FFF5 ¦     ¦ - ¦ Дата издания BIOS (в ASCII)                   ¦
ГДДДДДДДДДД†ДДДДД†ДДД†ДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДґ
¦F000:FFFE ¦     ¦ - ¦ Идентификационный код IBM PC.                 ¦
АДДДДДДДДДДБДДДДДБДДДБДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДДЩ

Примечания:

    1. В графе зависимость знак "-" означает, что приведенные в
предыдущих графах значения постоянны, "Ver" - зависят от версии MS DOS,
"Сon" - от содержимого 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

     ЪДДДДДДДТДДДДДДДТДДДТДДДВДДДДДДДВДДДДДДДТДДДДДДДВДДДДДДДТДДДДДДД¬
 00  ¦INT 20hєMemTop єRsvєCALL смещ.  сегментєАд.зaв  (int22)єCtrl-
     ГДДДБДДДЧДДДБДДДРДДДРДДДТДДДБДДД†ДДДБДДДЧДДДБДДД†ДДДБДДДЧДДДБДДДґ
 10   Break. єCritical Error є Резервная область DOS
     ГДДД†ДДДРДДД†ДДД†ДДД†ДДДРДДД†ДДД†ДДД†ДДДРДДД†ДДДТДДД†ДДДЧДДД†ДДДґ
 20    Резервная область DOS  Резервная область DOS  єEnvSeg є Резер-
     ГДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДРДДДБДДДРДДДБДДДґ
 30    вная область DOS   Резервная область DOS  Резервная область DOS
     ГДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДґ
 40    Резервная область DOS  (продолжение)
     ГДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДТДДДБДДД†ДДДБДДДґ
 50    Резервная область DOS   (окончание)           є Форматирован-
     ГДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДЧДДДБДДД†ДДДБДДДґ
 60   ная область параметра 1                        є Форматирован-
     ГДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДРДДДБДДД†ДДДБДДД·
 70   ная область параметра 2                                        є
     ЦДДДТДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДЅ
 80  єlenє неформатированная область параметров (символы из командной
     УДДДРДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДґ
 90   строки DOS )
     ГДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДґ
 ...  ... ... ... ... ... ... ... ... ... ... ... ... ... ... ... ...

     ЦДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДґ
100  є начало кода для COM или EXE-файла
     УДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДґ


            Рис.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
   ЦДДДТДДДВДДДТДДДВДДДТДДДВДДДДДДДВДДДДДДДВДДДДДДДВДДДДДДДВДДДДДДД¬
10 єТипєВл-лец єРазмер є   зарезервировано        зарезервировано  ¦
   ЗДДДРДДД†ДДДРДДД†ДДДРДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДДґ
20 є Начало блока памяти (для блока с загруженной программой - PSP)
   УДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†ДДДБДДД†

               Рис.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) могут выполняться в любом месте
памяти. Программы обычно не пишутся в предположении, что они будут
загружаться с определенного адреса (за исключением некоторых
самозагружающихся, защищенных от копирования игровых программ).
Программы типа EXE могут состоять из нескольких сегментов и могут
выполняться любом месте памяти только потому, что DOS настраивает
сегментные адреса при загрузке.


                             COM-программы

     COM-программы содержат единственный сегмент (или, во всяком случае,
не содержат явных ссылок на другие сегменты). Образ COM-файла
считывается с диска и помещается в память, начиная с PSP:0100.
COM-программы обычно используются для небольших утилит. Они быстрее
загружаются, ибо не требуется настройки сегментов, и занимают меньше
места на диске, поскольку заголовок EXE и сегмент стека отсутствуют в
Предыдущая страница Следующая страница
1 ... 91 92 93 94 95 96 97  98 99 100 101 102 103 104 ... 106
Ваша оценка:
Комментарий:
  Подпись:
(Чтобы комментарии всегда подписывались Вашим именем, можете зарегистрироваться в Клубе читателей)
  Сайт:
 
Комментарии (3)

Реклама