Информационный сервер для программистов: Исходники со всего света. Паскальные исходники со всего света
  Powered by Поисковый сервер Яndex: Найдется ВСЁ!
На Главную Pascal Форум Информер Страны мира
   Дисковые Программы и Утилиты    >>    vformat
   
 
 VFormat v1.9 - Форматизатор дискет  Александр Сесса 01.05.1995

VFORMAT версия 1.9 - форматирует дискеты быстрее и безопаснее, чем FDFORMAT



49k 
 

Предоставляю Вашему вниманию: VFORMAT.EXE - версия 1.9 - быстрее и безопаснее, чем FDFORMAT; VFORMAT.TXT - коротко о VFORMAT; *.PAS, ... - исходный текст VFORMAT 1.9. А.В.Сесса (MasterSoft) ПРОГРАММА ФОРМАТИРОВАНИЯ ДИСКЕТ С ЗАЩИТОЙ ОТ БУТОВЫХ ВИРУСОВ __________________________________________________________________________ Название программы - VFORMAT.EXE, Версия 1.9 ( Ноябрь 1991г.) Назначение программы - форматирование дискет в произвольном формате с записью вакцинированного загрузчика, предотвращающего работу бутовых вирусов. Вызов - VFORMAT <диск>: [опции], где опции - Fnnn : Определяет один из фиксированых форматов: +---------+----+----+---------+----+-----+---------+----+----+ | F |дор.|сек.| F |дор.| сек.| F |дор.|сек.| +---------+----+----Ћ---------+----+-----Ћ---------+----+----+ | 360 | 40 | 9 | 400 | 40 | 10 | 410 | 41 | 10 | | 720 | 80 | 9 | 800 | 80 | 10 | 820 | 82 | 10 | | 120, 12 | 80 | 15 | 144, 14 | 80 | 18 | 148 | 82 | 18 | | | | | 16 | 80 | 20 | 164 | 82 | 20 | | | | | 168 | 80 | 21 | 172 | 82 | 21 | +---------+----+----+---------+----+-----+---------+----+----+ 1 : Форматировать односторонний диск 4 : Форматировать стандартный 360 Кб диск 8 : Форматировать диск с 8 секторами A : Использовать для переключения на различные типы дискет только вызовы BIOS Bnnn : Использовать БАЙТ ТИПА ДИСКА nnn (для применения с более старыми Версиями BIOS) Cnnn : Использовать nnn секторов в кластере (nnn = 1 или 2) Dnnn : Использовать nnn входов корневого каталога (nnn = 1-224) Gnnn : Использовать длину межсекторного промежутка nnn Hnnn : Использовать nnn головок (nnn = 1 или 2) Innn : Использовать чередование (Interleave) nnn K : Не ждaть ввода с клавиатуры при старте VFORMAT Mnnn : Использовать Media-Descriptor-Byte nnn (при форматировании дисков для ATARI ST) Nnnn : (или Snnn) Использовать nnn Секторов O : Форматировать диск 720 Кб для применения с AT&T/OLIVETTI M24/M28 Pnn : Форматировать Пакет из nn дискет. Q : Быстрый Формат. Перезаписывает только системную ОБЛАСТЬ R : не проверять диск (и сохранить 33% времени) Tnnn : Использовать nnn Дорожек U : Безоговорочно форматировать дискету (в предыдущих версиях это делалось по умолчанию) V : Записать метку тома W : Форматировать без стирания. Физически переформатирует дискету без потери данных Xnnn : Сдвиг на nnn секторов при смене головки. Ynnn : Сдвиг на nnn секторов при смене дорожки. Z : Восстановить нулевую дорожку (Zero track) - восстанавливает содержимое дискеты, отформатированной без опции U, если до форматирования она уже содержала информацию в том же формате. Знаки ".", "/" и ":" при интерпретации опций игнорируются. Примеры : VFORMAT A: /4 p10 (форматировать десять 360 Кб дисков) VFORMAT А: /F:1.72 (форматировать диск 1.72 Мб) VFORMAT А: /T:80 /N:9 (форматировать диск 720 Кб) VFORMAT А: /O (форматировать диск 720 Кб для AT&T M24/28) VFORMAT А: /F:720 M$F7 B$54 (форматировать диск 720 Кб для ATARI ST) VFORMAT А: /F:12 D64 (форматировать диск 1.2 Мб с 64 входами Root) VFORMAT А: /F:410 R (форматировать диск 410 Кб без проверки) Следующая таблица показывает, как пользоваться основными опциями: Опции Емкость диска Может использоватся с дисководами ----- ------------- --------------------------------- T40 N9 360 КБайт 360 kB, 720 kB, 1.2 MB, 1.44 MB T41 N10 410 КБайт 360 kB, 720 kB, 1.2 MB, 1.44 MB T80 N9 720 КБайт 720 kB, 1.2 MB, 1.44 MB T82 N10 820 КБайт 720 kB, 1.2 MB, 1.44 MB T82 N15 1.2 MБайт 1.2 MB, 1.44 MB T80 N18 1.44 MБайт 1.2 MB(далеко не со всеми!), 1.44 MB T82 N18 1.46 MБайт 1.2 MB(-//-), 1.44 MB T82 N21 1.76 MБайт 1.44 MB Программа VFormat несколько отличается от своего прототипа FDFORMAT, в частности, временно опущена опция S - форматировать системную дискету и добавлены две другие опции: Pnn - удобна для форматирования большого ( nn<255 ) количества дискет, по умолчанию nn=255; Z - эта опция "обратного" форматирования, т.е. восстановления содержимого дискеты после логического(!) форматирования, которое выполняется программой VFormat в случаях, когда старый формат дискеты совпадает с новым. Физическое форматирование дискеты (опция U или при несовпадении старого и нового формата) безнадежно уничтожает содержимое дискеты. VFormat сохраняет содержимое нулевой дорожки форматируемой дискеты на спасательной дорожке, специально форматируемой в конце дискеты. Эта дорожка может быть создана при форматировании дискет DD с 40 дорожками или QD/HD c 80-81 дорожками (на некоторых дисководах число дорожек может быть и большим). Опция Z переносит содержимое спасательной дорожки на нулевую дорожку дискеты. При этом, если после форматирования на дискету не успели ничего записать, содержимое диска будет полностью восстановлено. Подробное описание других опций смотри в документации к FDFORMAT 1.8, русский перевод которой поставляется с пакетом VFORMAT 1.9. Ограничения и противопоказания: - возможно зависание некоторых "неполноценных" ПЭВМ (в частности "Amstrad PC 1640", "Искра 1030.11" и первых версий "Нейрона" с ROM- BIOS версии 3.21) в момент загрузки с зараженной вакцинированной дискеты, при этом вирус с дискеты не удаляется, но пользователь все же успеет получить сообщение о наличии вируса. Взаимодействие вакцины с вирусом: Процесс заражения вакцинированного диска бутовым вирусом ничем не отличается от заражения обычных дисков - вирус переносит содержимое BOOT-сектора в свободное место диска, а на место загрузчика помещает свое тело. При загрузке зараженной системы первой получает управление находящаяся в BOOT-секторе программа инсталляции вируса, при этом будет перехвачено прерывание Int13 и,возможно, некоторые другие прерывания. После этого считывается спрятанный вирусом BOOT-сектор и следует нормальная загрузка ДОС, первой фазой которой будет запуск вакцинированного загрузчика. Вакцина первым делом нейтрализует вирус, восстанавливая важнейшие вектора прерываний. При обнаружении следов работы вируса на экран выводится значение векторов захваченных прерываний, после чего на экране появится предупреждающее сообщение с предложеним о восстановлении загрузчика: Virus sterilized. Cure BOOT? При желании провести исследование вируса пользователь может отказаться от удаления вируса и продолжить загрузку, нажав клавишу [n]. В этом случае и в памяти и на диске останутся безобидные копии "стерилизованного" вируса. При загрузке с зараженной вакцинированной дискеты на машине с жестким диском после нейтрализации вируса в памяти и отказе удаления вируса из загрузчика блокируется доступ к "винчестеру". Для возобновления возможности работы с жестким диском следует загрузиться с жесткого диска или здоровой дискеты. СЛЕДУЕТ ОБРАТИТЬ ВНИМАНИЕ НА ТО, ЧТО МНОГИЕ БУТОВЫЕ ВИРУСЫ ЗАРАЖАЮТ MBR ЖЕСТКОГО ДИСКА В ФАЗЕ ИНСТАЛЛЯЦИИ, ТО ЕСТЬ ДО ИХ НЕЙТРАЛИЗАЦИИ ВАКЦИНОЙ - ЗАЩИТУ "ВИНЧЕСТЕРА" ОТ ТАКИХ ВИРУСОВ ОБЕСПЕЧИТ ЕГО ОБРАБОТКА УТИЛИТОЙ VITAMINB.EXE. Выводимые на экран адреса захваченных вирусом прерываний можно использовать для идентификации вирусов: Int08-ХХХ0:0887 - LIBERTY (кроме указанных векторов этот файлово-бутовый Int17-ХХХ0:0BF2 вирус перехватывает Int10-XXX0:0B2C и Int14-XXX0:0B7A; Int1C-ХХХ0:0A44 ВИТАМИН-Б эти вектора не исправляет, но и с ними Int13-ХХХ0:07EF LIBERTY оказывается надежно стерилизованным) Int08-ХХХ0:01CE - JOSHI Int09-ХХХ0:010A Int13-ХХХ0:04FA Int08-ХХХ0:0F75 - INVADER (файлово-бутовый) Int09-ХХХ0:0373 Int13-ХХХ0:04F0 Int08-ХХХ0:027B - DISK KILLER Int13-ХХХ0:028F Int09-ХХХ0:04D9 - DEN ZUK Int13-ХХХ0:0526 Int09-ХХХ0:035D * FORM (Int09 перехватывает только 18 числа Int13-ХХХ0:0346 каждого месяца!) Int1C-ХХХ0:051A * KEYDROP (Int1C перехватывает только при Int13-ХХХ0:0592 теплой перезагрузке!) Int13-XXX0:000B - AZUSA (Abs-2) Int13-ХХХ0:0015 * STONED (Marijuana) и его многочисленные переделки Int13-ХХХ0:001F * BLOODY Int13-ХХХ0:0095 - PRINT SCREEN (Abs-1) Int13-ХХХ0:0276 - BRAIN/ASHAR Int13-ХХХ0:0346 * FORM (см. выше) Int13-XXX0:03A0 - FILLER Int1С-ХХХ0:03A8 - FLIP (файлово-бутовый вирус при загрузке заводит собственное прерывание Int9F-XXX0:04F8; для нейтрализации вируса при загрузке ДОС достаточно исправить вектор Int1C) Int13-ХХХ0:04B0 - STARSHIP (файлово-бутовый) Int13-ХХХ0:0592 * KEYDROP (см. выше) Int13-ХХХ0:7CD0 - BALL (Italian) - TYPO-boot Int13-ХХХ0:7D38 * LOVECHILD b3 здесь ХХХ0 - обозначает сегмент вируса, который может различаться на разных машинах в зависимости от объема доступной ДОСу памяти. Звездочкой отмечены вирусы, "ускользающие" на жесткий диск до передачи управления вакцинированному загрузчику. Отличия новой версии от предыдущих: Версия 1.9 - добавлено сохранение нулевой дорожки в режимах логического форматирования с возможностью последующего восстановления содержимого дискеты (аналогично, но не совместимо с UnFormat MS/DOS 5.0); - устранена давно существовавшая проблема с чтением дискет на HD- дисководах после форматирования QD-дискет c AMI и ,возможно, некоторыми другими BIOS'ами. Версия 1.8 - создана на основе свободно распространяемого исходного текста программы FDFORMAT Ver. 1.8 (автор Christoph H. Hochstatter из ФРГ), пpи этом в VFORMAT были внесены некотоpые улучшения: а) для проверки дискеты используется Верификация вместо Записи(??); б) при обнаружении сбоя отбраковывается один кластер, а не вся сторона дорожки; в) в режиме повторного форматирования (без опции U) после обработки сбойной дорожки возобновляется "интеллектуальное" форматирование; г) из-за некорректной реализации исключена опция S - форматирование системной дискеты. Версия 1.7 - изменен механизм посекторной проверки дискеты, приводивший к медленной работе VFormat 1.6 на большинстве дисководов. Версия 1.6 - несколько изменен загрузчик; - выполнены многочисленные изменения текста оригинальной программы: a) исправлена ошибка, приводившая к неправильной работе на РС ХТ с 80-дорожечными дисководами; б) добавлена обработка нажатия Ctrl-Break - ранее после этого терялся блок параметров диска, в результате чего переставали читаться дискеты; в) при обнаружении сбоя отбраковывается один кластер, а не вся сторона дорожки; г) устранен вопрос "Abort, Retry, Ignore ?" при обнаружении плохого сектора. Версия 1.5 - первая версия VFORMAT - номер версии выбран в соответствии с текущей версией утилиты VITAMINB.EXE, использующей идентичный загрузчик. VFORMAT 1.5 создан на основе FDFORMAT Ver. 1.20, при этом в исходную программу были внесены полезные изменения. Права распространения программы: Эта программа и ее исходный текст может свободно распространяться в некоммерческих целях (желательно при этом не терять ее описание). Но если VFORMAT так понравится Вам, что Вы захотите вознаградить автора, Вы можете воспользоваться приведенным ниже адресом. Автор будет очень рад, если VFORMAT сможет поймать новый вирус (не упомянутый в этом описании) - в этом случае Вы можете переслать дискету с вирусом и стать зарегистрированным пользователем этой программы и программы VITAMINB. Вирусы и замечания направлять по адресу: 320130 Днепропетровск пер.Фестивальный 12, кв.54 Сессе Александру Владимировичу