Главная    Почта    Новости    Каталог    Одноклассники    Погода    Работа    Игры     Рефераты     Карты
  
по Казнету new!
по каталогу
в рефератах

Защита программ от компьютерных вирусов

узчик помещает
полное имя загружаемого файла в расширенное окружение ДОС. Окружение ДОС  -
это область памяти длиной до 32 Кбайт, в которой ДОС  сохраняет  переменные
окружения типа COMSPEC, PATH, PROMPT и  т.п.  Каждая  переменная  окружения
представляет собой текстовую строку, составленную из кодов ASCII,  в  конце
которой ставится байт 0 как признак конца строки - фирма IBM называет такой
код ASCIIZ (Z - Zero, ноль). Переменные окружения  располагаются  в  памяти
последовательно друг за другом. В конце «стандартной» части окружения  (эта
часть поддерживается  и  в  ранних  версиях  ДОС)  ставится  дополнительный
нулевой  байт.  За  стандартной  частью  следует  расширенная  часть,  куда
загрузчик новых версий ДОС помещает полное имя файла (с указанием  диска  и
маршрута поиска)  и,  возможно,  параметры  обращения  к  программе.  Таким
образом, чтобы найти имя файла, нужно отыскать в  окружении  ДОС  два  ноля
подряд - это признак начала расширенной части окружения.  Слово,  следующее
за этим признаком, содержит количество переменных в расширенной  части,  за
ним помещаются сами переменные. Например, в терминах  ассемблера  структура
окружения может быть такой:

db *COMSPEC==C:COMMAND .СОМ ',0 ; Переменная
COMSPEC db 'PATH=C:;C:DOS;D:TP*,0 ; Переменная
PATH db * PROMPT==$p$g * , 0; Переменная
PROMPT db 0 ; Признак конца

      В этом месте кончается стандартная часть окружения  и  начинается  его
расширенная часть (только для ДОС 3.0 и выше!).
           dw 2   ; Количество переменных в расширенной части
           db 'D:MYDIRSETFAG .ЕХЕ ',0 ;Имя файла
           db */NOBAK*,0 ; Параметр вызова
      Перед передачей управления программе загрузчик копирует окружение в
отдельную область памяти и помещает сегмент этой области в PSP (в слово со
смещением 44 байта от начала PSP).
      В заключение следует  сказать,  что  программы  SetFag  и  Fag.asm  не
являются эталоном. Просто  мне  показалось,  что  такой  способ  организации
защиты ЕХЕ- файлов будет достаточно удобным в использовании и эффективным  в
работе. Действительно, тестовые заражения программ специально  разработанным
вирусом, а также вирусом Yankee показали, что  фаг  успешно  выполняет  свои
функции.
       Поскольку  программу  Fag.asm  без  особого  труда  можно   изменить,
существует  потенциальная  опасность,   что   этот   материал   может   быть
использован для разработки вирусов. Я очень надеюсь, что  к  Вам,  уважаемый
читатель, это не относится.

                           4.2. Программа AntiVir

      Итак, мы рассмотрели способ,  позволяющий  придать  вновь  создаваемой
программе свойства самоконтроля. А  как  быть  с  СОМ—файлами  или  защитить
громоздкую программу? Кроме того, существуют  вирусы,  которые  поражают  ^е
файлы,  а  загрузочные  секторы  дисков.  Для  таких  вирусов  (их  называют
загрузочными)  контроль  PSP  может  оказаться   неэффективным.   Одним   из
возможных  способов   решения   задачи   является   разработка   специальной
программы, которая проверяет первый сектор наиболее важных ЕХЕ и  СОМ-файлов
при  каждом  включении  ПК.  Эта  же  программа  может   проверить   главный
загрузочный сектор или даже все загрузочные секторы на  всех  дисках,  чтобы
убедиться в отсутств1Щ загрузочных вирусов, а  при  их  обнаружении  удалить
их.
      Мною разработана программа AntiVir (прил.П9.1), реализующая  описанные
функции. Эта программа создает и поддерживает архив загрузочных  секторов  и
секторов  PSP.  Она  может  работать   в   двух   режимах-автоматическом   и
диалоговом.
       В  автоматическом  режиме   AntiVir   проверяет   текущее   состояние
загрузочных секторов и первых секторов для заданных файлов и  сравнивает  их
с эталонными копиями, хранящимися в архиве.  В  случае  обнаружения  отличий
программа сообщает пользователю об этом и предлагает восстановить  эталонное
состояние соответствующих секторов.
      В диалоговом режиме программа предоставляет  пользователю  возможность
просмотреть и скорректировать список проверяемых  файлов.  Диалоговая  часть
реализована с  помощью  объектно—ориентированной  библиотеки  Turbo  Vision.
Выбор  нужного   режима   осуществляется   автоматически:   если   программа
вызывается командой ДОС
                                   ANTIVIR
она переходит к диалогу с пользователем, если командой
                                ANTIVIR /AUTO
реализуется режим автоматического контроля.
       При  контроле  загрузочных  секторов   программа   использует   меры,
позволяющие ей обнаруживать так называемые  вирусы—невидимки.  Такие  вирусы
контролируют обращение к функциям и прерываниям ДОС, а  также  к  прерыванию
$13  BIOS  и  при  попытке  чтения   зараженного   вирусом   участка   диска
«подсовывают» программе сохраненную  вирусом  копию  незараженного  участка.
Единственным способом обнаружения таких  вирусов  является  непосредственное
обращение к контроллеру диска или прямой вызов  прерывания  $13в  постоянной
памяти  BIOS.  Поскольку  BIOS  обычно  учитывает  особенности   конкретного
контроллера  диска,  второй  путь  будет  более  простым,  однако  для   его
реализации необходимо каким-то образом определить начало в  BIOS  программы,
обрабатывающей  прерывание  $13  (сразу  после  загрузки  ДОС   вектор   $13
перехватывается  программами  1ВМ10.СОМ  и  показывает  на   резидентную   в
оперативной памяти часть ДОС).  Для  определения  «чистого»  вектора  $13  в
программе  используется   мультиплексное   прерывание   $2F,   которое   для
подфункции $13 возвращает в регистрах DS'.DX требуемый адрес. Поскольку  при
этом прежнее содержимое регистров DS'.DX автоматически помещается  в  вектор
$13, это  прерывание  необходимо  вызывать  дважды  подряд  с  промежуточным
запоминанием регистров DS'.DX в стеке (см. процедуру BuildArch  в  программе
ANTIVIR). В  ходе  контроля  загрузочных  секторов  программа  переназначает
обычно пустующий вектор $62 так, чтобы он  указывал  на  вход  в  обработчик
$13, и использует затем этот вектор для скрытого от вируса  чтения  секторов
жесткого диска. К сожалению этот  прием  нельзя  использовать  для  контроля
архивных файлов, так как в последнее время широкое распространение  получили
программы динамического сжатия/раскрытия информации (самыми  популярными  из
таких программ  являются  Double  Space  и  Stacker).  Контроль  динамически
сжатых дисков непосредственным чтением секторов невозможен, так как  в  этом
случае  отключается  не   только   возможный   вирус,   но   и   резидентная
программа—деархиватор.  В  результате  не  удается  найти  начальный  сектор
защищаемого файла и проверить PSP программы.

                          5. НЕКОТОРЫЕ РЕКОМЕНДАЦИИ

      1)  Вставляйте  имя  модуля  F_Anti  в  предложение  Uses-«вакцинация»
программы при ее рождении гарантирует стойкий  иммунитет  на  весь  срок  ее
эксплуатации.
      2) Если Вы часто используете  ЕХЕ-файлы,  содержащие  инструментальные
программы (например, пс.ехе, lexicon.exe и т.п.),  рекомендую  поставить  на
них  фаг  Fag.prg.  Кстати,  если  Вы  устанавливаете  фаг   на   программу,
защищенную средствами модуля F_Anti, встроенный  в  нее  контроль  обнаружит
инородное тело фага.
      3) Все СОМ—файлы операционной  программы  и  слишком  громоздкие  ЕХЕ-
файлы  следует  защитить  программой  Antivir.  Вызов   этой   программы   в
автоматическом  режиме  (с   ключом   /AUTO)   полезно   включить   в   файл
AUTOEXEC.BAT.
      4) Старайтесь как можно чаще архивировать на дискетах жизненно  важные
для Вас (и Вашего компьютера) файлы.
12345
скачать работу

Защита программ от компьютерных вирусов

 

Отправка СМС бесплатно

На правах рекламы


ZERO.kz
 
Модератор сайта RESURS.KZ