Страница 56 из 92
Описанный метод является простым и очень эффективным способом сжатия файлов. Однако он не обеспечивает большой экономии объема, если обрабатываемый текст содержит небольшое количество последовательностей повторяющихся символов. Более изощренный метод сжатия данных, используемый в том или ином виде практически любым архиватором, — это так называемый оптимальный префиксный код, и в частности, алгоритм Хаффмана, или кодирование символами переменной длины. Код переменной длины позволяет записывать наиболее часто встречающиеся символы и фразы всего лишь несколькими битами, в то время как редкие символы и фразы будут записаны более длинными битовыми строками. Например, анализируя любой английский текст, можно установить, что буква Е встречается гораздо чаще, чем Z, а X и Q относятся к наименее встречающимся. Таким образом, используя специальную таблицу соответствия, можно закодировать каждую букву Е меньшим числом бит, используя более длинный код для более редких букв, тогда как в обычных кодировках любому символу соответствует битовая последовательность фиксированной длины (как правило, кратной байту).
Популярные архиваторы ARJ, РАК, LHARC, PKZIP работают на основе алгоритма Лемпела-Зива. Эти архиваторы классифицируются как адаптивные словарные кодировщики, в которых текстовые строки заменяются указателями на идентичные им строки, встречающиеся ранее в тексте. Например, все слова этой книги могут быть представлены в виде номеров страниц и номеров строк некоторого словаря. Важнейшей отличительной чертой этого алгоритма является использование грамматического разбора предшествующего текста с разложением его на фразы, которые записываются в словарь. Указатели позволяют делать ссылки на любую фразу в окне установленного размера, предшествующем текущей фразе. Этот размер определяет границы поиска соответствия; при его увеличении возрастает плотность упаковки, но снижается скорость работы программы. Если соответствие найдено, текущая фраза заменяется указателем на ее предыдущее вхождение.
Программы-архиваторы позволяют не только сэкономить место на архивных дискетах, но и объединять группы совместно используемых файлов в один архивный файл, что заметно облегчает ведение архивов.
К основным функциям архиваторов относятся:
— архивация указанных файлов пли всего текущего каталога;
— извлечение отдельных или всех файлов на архива в текущий каталог (пли в указанный каталог);
— просмотр содержимого архивного файла (состав, свойства упакованных файлов, их каталожная структура и т. д.);
— проверка целостности архивов;
— восстановление поврежденных архивов;
— ведение многотомных архивов;
— вывод файлов из архива на экран или на печать.
Все программы-архиваторы, как правило, снабжены подробными комментариями, поэтому их применение не вызывает особых затруднений.
Кроме того, в программах-архиваторах могут быть предусмотрены дополнительные функции по защите информации в архивном файле с помощью пароля, которым используется как ключ алгоритма шифрования данных в архиве.
Компьютерный вирус — это специально написанная небольшая по размерам программа, которая может "приписывать" себя к другим программам (т. е. "заражать" их), а также выполнять различные нежелательные действия на компьютере. Программа, внутри которой находится вирус, называется "зараженной". Когда такая программа начинает работу, то сначала, как правило, управление получает вирус. Вирус находит и "заражает" другие программы или выполняет какие-нибудь вредные функции: портит файлы или таблицу размещения файлов на диске, "засоряет" оперативную память, изменяет адресацию обращений к внешним устройствам и т. д. Более того, зараженные программы могут быть перенесены на другой компьютер с помощью дискет или локальной сети.
Рис. 4.3. Классификация компьютерных вирусов
В настоящее время известно более трех тысяч вирусов. Условно они подразделяются на классы по следующим признакам.
По среде обитания:
— сетевые, распространяющиеся по компьютерной сети;
— файловые, внедряющиеся в выполняемый файл;
— загрузочные, внедряющиеся в загрузочный сектор жесткого диска или дискеты.
По способу заражения:
— резидентные, загружаемые в память ПК;
— нерезидентные, не заражающие память ПК и остающиеся активными ограниченное время.
По возможностям:
— безвредные, не влияющие на работу ПК;
— неопасные, влияние которых ограничивается уменьшением свободной памяти на диске и графическими звуковыми и прочими эффектами;
— опасные, которые могут привести к серьезным сбоям в работе ПК;
— очень опасные, которые могут привести к потере программ, уничтожению данных, стереть информацию в системных областях памяти и даже преждевременному выходу из строя периферийных устройств. В последнее время появились вирусы, влияющие на здоровье человека (печально известный вирус "777").
* * *
Данная классификация объединяет, естественно, далеко не все возможные вирусы; в каждой категории встречаются варианты, не названные в силу их экзотичности, например, CMOS-вирусы или вирусоподобные структуры, "обитающие" в среде Microsoft Word. Кроме того, встречается ряд программ, не обладающих всеми свойствами вирусов, но могущих представлять серьезную опасность ("троянские кони" и т. п.).
* * *
Для защиты и борьбы с вирусами применяются специальные антивирусные программы, которые можно разделить на несколько видов:
— программы детекторы позволяют обнаружить файлы, зараженные вирусом. Работа детектора основывается на поиске участка кода, принадлежащего тому или иному известному вирусу. К сожалению, детекторы не гарантируют обнаружения "свежих" вирусов, хотя в некоторых из них для этого предусмотрены особые средства. Наиболее известными детекторами являются ViruScan, KetSсаn. У нас в стране используется детектор Aidstest;