- •Инсталляция
- •Заражение файлов
- •Часть II. Программное обеспечение
- •6.1. Компьютерные вирусы и их классификация
- •1. По среде обитания вируса.
- •2. По способу заражения среды обитания.
- •3. По деструктивным возможностям.
- •4. По особенностям алгоритма вируса.
- •6.2. Последствия вирусного поражения
- •Назначение архивации файлов
- •1.2. Основные программы архивации
Назначение архивации файлов
Программы-архиваторы относятся к программному обеспечению общего назначения. Они позволяют сжимать информацию за счет применения специальных методов «упаковки», т. е. создавать файлы меньшего размера, а также объединять копии нескольких файлов в один архивный файл.
Программы-архиваторы используются для следующих целей:
сжатия резервных копий файлов;
сжатия редко используемых данных при недостатке места на диске;
сжатия данных при передаче их по каналам связи (для ускорения процесса передачи);
при создании дистрибутивов программ;
обмена информацией между пользователями;
шифрования конфиденциальной информации (архивирование с паролем).
Архивный файл (архив) представляет собой набор из одного или нескольких файлов, помещенных в сжатом виде в единый файл, из которого при необходимости их можно извлечь в первоначальном виде.
Архив содержит оглавление, позволяющее узнать, какие файлы содержатся в архиве. В оглавлении архива для каждого содержащегося в нем файла хранится следующая информация:
имя файла;
сведения о каталоге папки, в котором содержится файл;
дата и время последней модификации;
размер файла на диске и в архиве.
Сжатие информации достигается за счет устранения избыточности в данных путем обработки файлов по специальным алгоритмам. Так, алгоритм RLE (Run Length Encoding) заменяет повторяющиеся символы двумя значениями: числом повторений и кодом. Например, если текст содержит 20 пробелов, которые следуют подряд, то вместо 20 байтов можно записать только два байта: число 20 (в двоичном коде) и код пробела. Таким образом, сжатый фрагмент будет короче исходного в 10 раз. Данный алгоритм используется в специализированных алгоритмах для сжатия графической информации.
Алгоритм Лемпеля-Зива-Уэлча LZW (Lempel-Ziv-Welch) кодирует часто встречающиеся последовательности. Кодированию предшествует статистический анализ исходного файла на предмет выявления таких последовательностей и построения, образно выражаясь, своего словаря.
Существует много методов сжатия данных и их разработка еще продолжается.
Стандарты на кодирование данных используют коды постоянной длины, например система ASCII использует коды символов из 8 битов (двоичных разрядов), Unicode использует коды символов из 16 битов. Однако не все символы одинаково часто встречаются, поэтому, если перейти к кодам переменной длины (состоящим из разного числа битов), то открывается возможность часто используемым символам назначить короткие коды, а редко используемым — длинные. Тогда суммарная длина закодированного текста будет меньше, чем при стандартной кодировке (алгоритм Хаффмана). Эффективность сжатия информации в данном случае будет зависеть от того, насколько удачно подобраны коды к содержимому конкретного файла.
Для каждого исходного файла до архивации рассчитывается и запоминается в архиве специальное число — код циклического контроля. Это число состоит из 32-двоичных разрядов (4 байта) и известно как код CRC-32. Математически доказано, что это число практически уникально для каждого файла конкретного размера, как уникальны отпечатки пальцев у каждого человека.
При восстановлении файла из архива расчет кода CRC-32 повторяется. Так, как количество байтов исходного размера известно, и известен код циклического контроля, то при несовпадении вновь рассчитанного кода с первоначальным значением фиксируется ошибка. Таким образом, если файл распакован, гарантируется его идентичность оригиналу.