ПНЗ (ПЗУ) - ВИРУС - ПНЗ (диск) - СИСТЕМА
Была рассмотрена схема функционирования простого бутового вируса, живущего в загрузочных секторах дискет. Как правило, вирусы способны заражать не только загрузочные секторы дискет, но и загрузочные секторы жестких дисков — винчестеров. При этом в отличие от дискет на винчестере имеются два типа загрузочных секторов, содержащих программы начальной загрузки, которые получают управление. При загрузке компьютера с винчестера первой берет на себя управление программа начальной загрузки в МВR (главная загрузочная запись). Если жесткий диск разбит на несколько разделов, то лишь один из них помечен как загрузочный (bооt). Программа начальной загрузки в МВR находит загрузочный раздел винчестера и передает управление на программу начальной загрузки этого раздела. Код последней совпадает с кодом программы начальной загрузки, содержащейся на обычных дискетах, а соответствующие загрузочные секторы отличаются только таблицами параметров. Таким образом, на винчестере имеются два объекта атаки загрузочных вирусов — программа начальной загрузки в МВR и программа начальной загрузки в bооt-секторе загрузочного диска.
Приведем обобщенный пример структуры программы-вируса. Она состоит из псевдокоманд DOS и подпрограмм — маленьких внутренних программ (составляющие их инструкции хранятся отдельно от главной программы), выполняющих некоторые специальные функции всякий раз, когда к ним обращаются.
this:=findfile
LOAD (this)
loc := search(this)
insert (loc)
STORE (this)
Подпрограмма под названием findfile обращается к каталогу выполняемых файлов или программ на диске, берет произвольное имя файла и присваивает имя этого файла переменной this (этот). В следующей строке программы используется псевдокоманда DOS LOAD (загрузить), с помощью которой файл помещается в оперативную память компьютера.
Другая подпрограмма под названием search (поиск) просматривает только что загруженную программу в поисках инструкции, которая могла бы послужить подходящим местом, куда можно занести вирус. Когда процедура search находит такую инструкцию, она определяет соответствующий номер строки и присваивает его в качестве значения переменной lос. Теперь все готово для того, чтобы подпрограмма-вирус могла проникнуть в произвольно выбранную из каталога программу.
Подпрограмма insert (вставить) заменяет выбранную инструкцию другой (например такой, как вызов подпрограммы). Замененная инструкция передает управление блоку команд, составляющих главное тело подпрограммы-вируса, которая присоединяется к концу программы. Затем к концу добавленной подпрограммы присоединяется инструкция, возвращающая управление «зараженной» программе на инструкцию, следующую за вставленной. Таким образом, когда выполняется подпрограмма-вирус, выполняется также и подмененная инструкция зараженной программы. Исходная программа работает так, будто ничего особенного не произошло. Однако на самом деле подпрограмма-вирус воспользовалась каким-то мгновением, чтобы захватить власть над средствами операционной системы и прицепить свою копию к еще одной программе, хранящейся на диске. Приведенный пример демонстрирует лишь один из приемов, используемых авторами вирусов. В настоящее время специалисты выделили и другие приемы, отличающиеся друг от друга идеями и изощренностью выполнения.
Дата добавления: 2015-08-21; просмотров: 645;