Technics & Technology
RIN.ru - Russian Information Network
 
WIN95.CIH: ВСЕМ СМЕРТЯМ НА ЗЛО!
Опубликовано 25.01.2004 г.
PT - состоит из четырёх элементов описывающих разделы диска. DOS и Windows используют только первые два элемента. Описание раздела диска содержит информацию о первых и последних головках, дорожках, секторах раздела, общем количестве секторов в разделе, типе файловой системы и признак того, что раздел является загрузочным.

MBR - находится в том же секторе что и PT. Данные в MBR представляют собой код процессора необходимый для дальнейшей загрузки операционной системы. В последних двух байтах MBR находится сигнатура 55AAh указывающая на то, что данные в MBR необходимо использовать для загрузки. Если эта сигнатура отсутствует, данные MBR не будут использованы.

PT и MBR расположены на самом первом секторе HDD.

BR - содержит массу данных и служит для описания параметров файловой системы. В отличие от диска, минимальным адресуемым блоком данных для операционной системы служит кластер, состоящий из одного или нескольких секторов. В BR нам интересны такие данные как размер кластера, размер и количество копий FAT.

FAT - Состоит из 12, 16 или 32 битных элементов, количество которых равно количеству кластеров на диске. Нужны эти элементы для связи кластеров в цепочки соответствующие файлам. (см. рис. 2)

ROOT - Корневой каталог диска. Содержит записи описывающие файлы (дескрипторы файлов) в корневом каталоге. Такая запись описывает имя, тип, дату создания, размер, атрибуты файла, а так же содержит указатель на первый кластер файла. Каталоги представляют собой файлы идентичные по структуре корневому каталогу. Каталог кроме записей, описывающих файлы, содержит две записи, одна из которых содержит указатель на первый кластер самого каталога, вторая на первый кластер родительского каталога.

Будем считать, что Вы всё поняли. :-) Если нет, то существует специальная литература, где эти вещи расписаны подробнее и, вероятно, более доступно.

Переходим к основной части - восстановление данных на HDD.

Нам потребуются следующие вещи:

Загрузочная дискета (по возможности не заражённая вирусами) защищённая от записи.
Программа FDISK из комплекта установленной ОС.
Программа FORMAT из комплекта установленной ОС.
Программа DISKEDIT из комплекта NU v 2.0 для Windows 95 OSR2.
Программа UNERASE из того же комплекта.
Программа NC, VC, DN или что то подобное.
По моим наблюдениям Win95.CIH в первую очередь `убивает` такие вещи как FAT и BR, при этом любезно оставляет нам ROOT.

ВАЖНО: Эта инструкция написана для ситуации, когда имеется 1 логический диск.

Приступим:

01: Запускаем DISKEDITOR и получаем доступ к HDD как к физическому устройству. Ищем ROOT, он, как правило, содержит файл типа command.com. Только не вздумайте вводить в строку поиска `command.com`, если Вы таким образом что-нибудь и найдёте, можете быть уверены что это не ROOT. Введите просто `command` или какое-нибудь другое имя файла, про который Вы точно знаете, что он был в корневом каталоге.

02: Переходим в режим показа каталогов и определяем размер (в секторах) ROOT и записываем эти сектора на дискету (не на загрузочную, она ведь у нас от записи защищена) в отдельный файл. Записываем (на бумажку) с какого именно места начинался ROOT (цилиндр (он же - дорожка), головка, сектор).

03: Запускаем программу FDISK и убиваем раздел диска. Далее, заново создаём раздел и выходим из программы. FDISK предложит перезагрузиться, что мы и сделаем.

04: Запускаем программу FORMAT с ключами /U /S и форматируем диск C:. Что, страшно? Не волнуйтесь, программа формат на самом деле ничего не стирает с диска кроме ROOT и FAT, ещё она модифицирует запись BR.

05: Снова запускаем DISKEDITOR и находим ROOT. Внимательно смотрим, лежит ли он в том же месте что и прежний (у нас это на бумажке было записано). Если не в том же, то считаем, на сколько секторов он сместился. Делим число секторов смещения на два (вернее на количество копия FAT - см. BR). Полученный результат добавляем к (если смешение произошло к началу диска) или вычитаем из (если смешение произошло к концу диска) числа секторов в FAT указанных в соответствующем поле BR. Модифицируем BR и снова форматируем диск. Примечание: Способ абсолютно не корректный, зато простой и действенный. :-)

06: Повторив предыдущий пункт и, убедившись, что новый ROOT лежит на месте старого, читаем (всё тем же DISKEDITOR-ом) файл с сохранённым ROOT и записываем его поверх нового.

07: Перезагружаемся (все перезагрузки мы делаем с помощью загрузочной дискеты). Если всё сделано правильно, мы увидим, что всё утраченное содержимое вновь появилось на диске C:. Однако радоваться рано. То, что мы видим только указатели на начала файлов. FAT (после форматирования) девственно чист и нам ещё предстоит заняться восстановлением цепочек кластеров. Здесь успех полностью зависит от того, насколько давно Вы делали дефрагментацию диска. Если дефрагментация выполнена недавно, то все кластеры отдельного файла лежат по порядку. Если дефрагментация делалась давно, или не делалась вовсе, Вам остается положиться на удачу и утешится тем, что первый кластер любого файла Вы считаете верно.

Полезная информация Предприятия отрасли
Переход по страницам:  1 2 3 Еще»