
- •Компьютерные вирусы и вредоносные программы План
- •Введение
- •1. Этимология названия
- •2. Формальное определение компьютерного вируса
- •2.1.Машина Тьюринга
- •2.2. Конечный автомат
- •2.3. Формальное определение
- •3. Компьютерный вирус Основные свойства
- •4. История компьютерных вирусов
- •2000 Год еще можно назвать годом "Любовных Писем".
- •5. Вирус, ворующий программный код
- •6.1. Классификация компьютерных вирусов по среде обитания
- •1.2. Классификация компьютерных вирусов по способу заражения
- •1.3. Классификация компьютерных вирусов по особенностям алгоритма работы
- •1.4. Классифиация компьютерных вирусов по деструктивные возможностям
- •1.5. Классифиация компьютерных вирусов по целостности
- •7. Макровирусы
- •3. Понятие стелс-алгоритмов активhые стелс - вирусы
- •4. Сетевые Вирусы
- •Структура файлового hерезидеhтhого вируса
- •Структура файлового резидеhтhого вируса
- •Структура бутового вируса
2.2. Конечный автомат
Конечный автомат (в теории алгоритмов) — математическая абстракция, позволяющая описывать пути изменения состояния объекта в зависимости от его текущего состояния и входных данных, при условии что общее возможное количество состояний конечно.
Конечный автомат является частным случаем абстрактного автомата. Конечный автомат может быть детерминированным или недетерминированным, в зависимости от того, имеется ли один или несколько вариантов его поведения на каком-то шаге.
Формально конечный автомат определяется как пятёрка
Где:
K — конечное множество состояний автомата,
—единственно
допустимое начальное состояние автомата,
—множество конечных
состояний, причём допустимо F=Ø,
и
F=K, Σ — допустимый входной алфавит, из которого формируются строки, считываемые автоматом,
—функция переходов.
Автомат начинает работу в состоянии s, считывая по одному символы входной строки. Считанный символ переводит автомат в новое состояние из K, в соответствии с функцией переходов. Процесс продолжается до тех пор, пока не будет достигнуто одно из состояний F.
Конечные автоматы широко используются на практике, например в синтаксических анализаторах, а также в других случаях когда количество состояний объекта и переходов между ними сравнительно невелико.
2.3. Формальное определение
Фред Коэн со ссылкой на машину Тьюринга Формально определил вирус следующим образом:
M: (SM, IM, OM: SM x IM > IM, NM: SM x IM > SM, DM: SM x IM > d)
М – машина Тьюринга (конечный автомат)с заданным множеством:
состояний SM,
множеством входных символов IM
множеством отображений (OM, NM, DM),
Машина Тьюринга М на основе своего текущего состояния s ∈ SM и входного символа i ∈ IM, считанного с полубесконечной ленты, определяет:
выходной символ o ∈ IM для записи на ленту,
следующее состояние машины s' ∈ SM
и движения по ленте d ∈ {-1,0,1}.
Для данной машины M, последовательность символов v: vi ∈ IM может быть сочтена вирусом тогда и только тогда, когда обработка последовательности v в момент времени t, влечёт за собой то, что в один из следующих моментов времени t, последовательность v′ (не пересекающаяся с v) существует на ленте, и эта последовательность v′ была записана M в точке t′, лежащей между t и t″:
∀ CM ∀ t ∀ j:
SM(t) = SM0 ∧
PM(t) = j ∧
{ CM(t, j) … CM(t, j + |v| - 1)} = v ⇒
∃ v' ∃ j' ∃ t' ∃ t":
t < t" < t' ∧
{j' … j' +|v'|} ∩ {j … j + |v|} = ∅ ∧
{ CM(t', j') … CM(t', j' + |v'| - 1)} = v' ∧
PM(t") ∈ { j' … j' + |v'| - 1 }
где:
t ∈ N число базовых операций «перемещения», осуществлённых машиной
PM ∈ N номер позиции на ленте машины в момент времени t
SM0 начальное состояние машины
CM(t, c) содержимое ячейки c в момент времени t
Данное определение было дано в контексте вирусного множества:
VS = (M, V) — пары, состоящей из машины Тьюринга M и множества последовательностей символов V: v, v' ∈ V.
Из данного определения следует, что понятие вируса неразрывно связано с его интерпретацией в заданном контексте, или его окружении.
Фредом Коэном было показано, что:
в общем виде вопрос о том, является ли данная пара (M, X): Xi ∈ IM вирусом, неразрешим (то есть не существует алгоритма, который мог бы достоверно определить все вирусы), теми же средствами, которыми доказывается неразрешимость проблемы остановки.
Другие исследователи доказали, что существуют такие типы вирусов (вирусы, содержащие копию программы, улавливающей вирусы), которые не могут быть безошибочно определены ни одним алгоритмом.