




















|
Подробное описание последовательности
действий, расположенных в строго определенном порядке и позволяющих
решить конкретную задачу. Алгоритм позволяет формализовать решение
поставленных задач.
Исполнителем обычно называют объект,
который будет выполнять алгоритм.
Свойства алгоритма:
1. Дискретность – разделение
информационного процесса в алгоритме на отдельные команды.
2. Однозначность – единственность
толкования исполнителем правила построения действий.
3. Массовость – использование одного и
того же алгоритма с разными исходными данными.
4. Детерминированность – такая запись
алгоритма, чтобы, выполнив очередную команду, исполнитель точно
знал, какую команду необходимо исполнять следующей.
5. Результативность – обеспечение
алгоритмом преобразования объекта из начального в конечное за
конечное число шагов.
6. Понятность – содержание алгоритмом
только тех команд, которые входят в систему команд исполнителя.
7. Правильность - способность
алгоритма давать правильные результаты решения поставленных задач.
8. Эффективность - для решения задачи
должны использоваться ограниченные ресурсы компьютера (процессорное
время, объем оперативной памяти и т.д.).
Способы записи алгоритма:
1. Описательный – описание на естественном
языке.
2. Графический – описание с применением
стандартных геометрических фигур.
3. С применением языков программирования.
Разработка алгоритма всегда
осуществляется в две стадии:
1. Разработчик описывает общую концепцию,
порядок действий для достижения цели.
2. В алгоритм вносятся изменения с учетом
конкретного исполнителя и среды, в которой он будет осуществляться.
Основные типы алгоритмических
структур:
1. Линейный алгоритм - алгоритм, в котором
команды выполняются последовательно одна за другой;
2. Разветвляющийся алгоритм (ветвление) -
алгоритм, в котором та или иная серия команд выполняется в
зависимости от истинности условия;
3. Циклический алгоритм (цикл) - алгоритм, в
котором серия команд (тело цикла) выполняется многократно в
зависимости от выполнения или не выполнения условия.
4. "Выбор" - алгоритм, в котором выполняется
одна из нескольких последовательностей команд при истинности
соответствующего условия.
Примером исполнителя может быть:
робот, производящий некие работы в космосе, согласно командам,
поступающим с Земли; станок с числовым программным управлением,
который выполняет программу, набитую на заложенной в нем перфокарте;
собака, которая должна выполнять команды хозяина; солдат в армии,
который обязан подчиняться приказам командира.
Роботы, машины, компьютеры являются
идеальными исполнителями. Они выполняют команды, не обсуждая.
Идеальный исполнитель не обязан:
1. Понимать цель и методы достижения цели;
2. Пропускать или менять порядок действий;
3. Искать какую-то замену при невыполнении
этих действий.
Процесс составления алгоритма.
Алгоритм, в котором та или иная серия
команд выполняется в зависимости от истинности условия.
Формы структуры "всетвление":
1. Полная - форма, в которой в зависимости от
выполнения или не выполнения условия выполняется та или иная серия
команд;
2. Краткая - форма, в которой лишь при
выполнении условия выполняется серия команд.
Структура "ветвление" фиксируется:
1. Графически, с помощью блок-схемы;
2. На языке программирования, например на
языке Turbo Pascal с использованием специальной инструкции ветвления
(Оператора условного перехода: IF <условие> THEN <серия 1> ELSE
<серия 2>. Возможно применение краткой формы оператора IF <условие>
THEN <серия 1>).
Алгоритм, в котором выполняется одна
из нескольких последовательностей команд при истинности
соответствующиего условия. Алгоритмическая структура "выбор"
применяется для реализации ветвления со многими вариантами серий
команд. В структуру выбора входят несколько условий, проверка
которых осуществляется в строгой последовательности их записи в
команде выбора. При истинности одного из условий выполняется
соответствующая последовательность команд.
Структура "выбор" фиксируется:
1. Графически, с помощью блок-схемы;
2. На языке программирования, например на
языке Turbo Pascal с использованием специальной инструкции:
CASE <выражение-селектор> OF
константа 1: BEGIN
Инструкция 1
END;
константа 2: BEGIN
инструкция 2
END;
...
константа N: BEGIN
инструкция N
END;
ELSE BEGIN
инструкция
END;
END.
Выполнение оператора начинается с
вычисления выражения-селектора. Инструкции выполняются в том случае,
если значение выражения после оператора выбора (CASE) совпадает с
константой из соответствующего списка, иначе выполняется инструкция
после оператора "иначе" (ELSE). Возможно применение краткой формы
оператора (отсутствие оператора "иначе"). Выражение-селектор должно
иметь целочисленный (integer), символьный (char), логический (boolean),
перечисляемый (1,2,3) тип данных или тип диапазон (3..5), но не
вещественный (real) и не строковый (string).
Алгоритм, в котором серия команд (тело
цикла) выполняется многократно в зависимости от выполнения или не
выполнения условия.
Циклические алгоритмические структуры
бывают трех типов:
1. Цикл с параметром - цикл, серия команд в
котором выполняется определенное количество раз.
2. Цикл с предусловием - цикл, в котором
условие выхода из цикла стоит в начале, перед телом цикла.
3. Цикл с постусловием - цикл, в котором
условие выхода из цикла стоит в конце, после тела цикла.
Алгоритмическая структура "цикл"
фиксируется:
1. Графически - с помощью блок-схемы;
2. На языке программирования, например на
языке Turbo Pascal с использованием специальных инструкций,
реализующих циклы разничного типа:
1) Цикл с
параметром: FOR <имя переменной> := <нач. знач.> TO <конеч. знач.>
DO BEGIN <серия> END;
FOR <имя переменной> := <нач. знач.> DOWNTO <конеч. знач.> DO BEGIN
<серия> END; (если нач. знач. больше конеч. знач.)
2) Цикл с предусловием: WHILE <условие> DO
BEGIN <серия> END;
3) Цикл с постусловием: REPEAT <серия> UNTIL
<условие>
Вредоносная программа, одной из
функций которой является нарушение работы установленной на
пораженном компьютере антивирусной защиты.
Программный пакет, предназначенный для
эффективной защиты, перехвата и удаления из операционной системы
компьютера максимального количества вредоносных (или потенциально
вредоносных) программ.
В настоящее время большинство ведущих
антивирусных программ сочетает в себе функции постоянной защиты
(антивирусный монитор) и функции защиты по требованию пользователя
(антивирусный сканер).
Постоянная антивирусная защита
запускается автоматически при старте операционной системы и работает
в качестве фонового системного процесса, проверяя на вредоносность
совершаемые другими программами действия. Постоянная антивирусная
защита проверяет не только файлы на различных носителях информации,
но и оперативную память компьютера. Основная задача постоянной
антивирусной защиты компьютера: обеспечивать максимальную
безопасность при минимальном замедлении работы проверяемых на
вредоносные действия программ.
Защита по требованию запускается самим
пользователем и, как правило, заключается в полном или выборочном
сканировании присутствующих на жестких и сетевых дисках компьютера
файлов. Защита по требованию производит однократную проверку
оперативной памяти компьютера. В большинстве случаев антивирусные
сканеры гораздо более требовательны к ресурсам компьютера, нежели
постоянная антивирусная защита.
Для обнаружения, удаления и защиты от
компьютерных вирусов разработано несколько видов специальных
программ, которые позволяют обнаруживать и уничтожать вирусы. Такие
программы называются антивирусными.
Различают следующие виды антивирусных
программ:
1. Программы-детекторы осуществляют
поиск характерной для конкретного вируса последовательности байтов
(сигнатуры вируса) в оперативной памяти и в файлах и при обнаружении
выдают соответствующее сообщение. Недостатком таких антивирусных
программ является то, что они могут находить только те вирусы,
которые известны разработчикам таких программ.
2. Программы-доктора или фаги, а также
программы-вакцины не только находят зараженные вирусами файлы, но и
"лечат" их, т.е. удаляют из файла тело программы вируса, возвращая
файлы в исходное состояние. В начале своей работы фаги ищут вирусы в
оперативной памяти, уничтожая их, и только затем переходят к
"лечению" файлов. Среди фагов выделяют полифаги, т.е.
программы-доктора, предназначенные для поиска и уничтожения большого
количества вирусов. Наиболее известными полифагами являются
программы Aidstest,Scan, Norton AntiVirus,AVT и Doctor Web.
Учитывая, что постоянно появляются
новые вирусы, программы-детекторы и программы-доктора быстро
устаревают, и требуется регулярное обновление их версий.
3. Программа-ревизоры относятся к
самым надежным средствам защиты от вирусов. Ревизоры запоминают
исходное состояние программ, каталогов и системных областей диска
тогда, когда компьютер не заражен вирусом, а затем периодически или
по желанию пользователя сравнивают текущее состояние с исходным.
Обнаруженные изменения выводятся на экран видеомонитора. Как
правило, сравнение состояний производят сразу после загрузки
операционной системы. При сравнении проверяются длина файла, код
циклического контроля (контрольная сумма файла), дата и время
модификации, другие параметры. Программы-ревизоры имеют достаточно
развитые алгоритмы, обнаруживают стелс-вирусы и могут даже отличить
изменения версии проверяемой программы от изменений, внесенных
вирусом. К числу программ-ревизоров относится широко
распространенная в России программа Adinf фирмы "Диалог-Наука".
4. Программы-фильтры или "сторожа"
представляют собой небольшие резидентные программы, предназначенные
для обнаружения подозрительных действий при работе компьютера,
характерных для вирусов. Такими действиями могут являться: попытки
коррекции файлов с расширениями СОМ и ЕХЕ; изменение атрибутов
файлов; прямая запись на диск по абсолютному адресу; запись в
загрузочные сектора диска; загрузка резидентной программы.
При попытке какой-либо программы произвести указанные действия
"сторож" посылает пользователю сообщение н предлагает запретить или
разрешить соответствующее действие. Программы-фильтры весьма
полезны, так как способны обнаружить вирус на самой ранней стадии
его существования до размножения. Однако они не "лечат" файлы и
диски. Для уничтожения вирусов требуется применить другие программы,
например фаги. К недостаткам программ-сторожей можно отнести их
"назойливость" (например, они постоянно выдают предупреждение о
любой попытке копирования исполняемого файла), а также возможные
конфликты с другим программным обеспечением. Примером
программы-фильтра является программа Vsafe, входящая в состав пакета
утилит операционной системы MS DOS.
5. Вакцины или иммунизаторы - это
резидентные программы, предотвращающие заражение файлов. Вакцины
применяют, если отсутствуют программы-доктора, "лечащие" этот вирус.
Вакцинация возможна только от известных вирусов. Вакцина
модифицирует программу или диск таким образом, чтобы это не
отражалось на их работе, а вирус будет воспринимать их зараженными и
поэтому не внедрится. В настоящее время программы-вакцины имеют
ограниченное применение.
Своевременное обнаружение зараженных
вирусами файлов и дисков, полное уничтожение обнаруженных вирусов на
каждом компьютере позволяют избежать распространения вирусной
эпидемии на другие компьютеры.
Правила защиты от компьютерных
вирусов:
1. Регулярно тестируйте компьютер на наличие
вирусов с помощью антивирусных программ
2. Перед считыванием информации с дискет
проверяйте их на наличие вирусов
3. Всегда защищайте свои дискеты от записи
при работе на других компьютерах
4. Делайте архивные копии ценной для вас
информации
5. Не оставляйте дискету в дисководе
6. Не используйте программы, поведение
которых непонятно
7. Регулярно обновляйте антивирусные
программы
БД, содержащие сигнатуры огромного
количества вредоносных программ. Одна запись в подобной базе может
содержать алгоритмы детектирования как одной, так и сразу нескольких
разновидностей вредоносных программ. Во втором случае записи
присваивается версия ".gen", например, I-Worm.Bagle.gen.
С целью обеспечения надежной защиты
пользователя от новых вредоносных программ набор сигнатурных записей
в антивирусной базе данных необходимо регулярно обновлять.
С 1 августа 2004 года "Лаборатория
Касперского", заслуженно являясь мировым лидером в скорости реакции
на появление новых вредоносных программ, выпускает обновления
антивирусной базы данных один раз в час. Вдобавок к этому в случае
появления особенно опасной вредоносной программы производится выпуск
срочного обновления, содержащего сигнатуры и алгоритмы
детектирования данной вредоносной программы.
Понимая, что даже подобной частоты
обновления антивирусных баз может быть недостаточно в случае
эпидемии сетевых flash-червей (например, Worm.Win32.Lovesan.a и
Worm.Win32.Sasser.a), молниеносно распространяющихся с одного
компьютера на другой, используя прямое подключение через бреши в
защите TCP/IP-портов операционной системы, эксперты компании
постоянно совершенствуют эвристические алгоритмы проактивной
поведенческой защиты.
Подобная проактивная защита,
анализируя в реальном времени выполняемые программами действия,
позволяет блокировать работу и дальнейшее размножение вредоносных
программ еще до появления соответствующих обновлений антивирусной
базы данных.
Программа, одной из функций которой
является поиск и удаление какой-либо другой вредоносной программы.
Не стоит заблуждаться: даже если
подобные программы не осуществляют никаких очевидных деструктивных
действий, они всё равно наносят вред пользователю, замедляя скорость
подключения к Интернету, снижая производительность компьютера и
зачастую вызывая проблемы в работе операционной системы и других
установленных на компьютере программ.
Набор методов уклонения от
дизассемблирования (разбора программы с целью анализа её
функциональности и примененных при её создании алгоритмов),
встроенных в код какой-либо программы.
Подобные методы присущи не только
вредоносным программам. Зачастую антидебаггерами защищают вполне
легальные программы, например, индустриальные системы защиты
компакт-дисков от копирования. Более того, в большинстве
лицензионных соглашений легальных коммерческих программных продуктов
содержится пункт, запрещающий их дизассемблирование, поскольку в
коде таких программ зачастую содержатся патентованные программные
технологии.
|

























 |