Алгоритм - Учебный центр

Версия сайта для слабовидящих
Заполните форму ниже! Мы вам перезвоним!

Нажав на кнопку "Отправить", Я даю своё согласие на автоматизированную обработку указанной информации, распространяющейся на осуществление всех действий с ней, включая сбор, передачу по сетям связи общего назначения, накопление, хранение, обновление, изменение, использование, обезличивание, блокирование, уничтожение и обработку посредством внесения в электронную базу данных, систематизации, включения в списки и отчетные формы.


Пример спасения файла на уровне секторов (LBA) и знаний структур HDD и файловых систем.

Пример спасения файла на уровне секторов (LBA) и знаний структур HDD и файловых систем.

Процесс спасения файла AFD.com из раздела NTFS с помощью програмки ch_lba.com созданной на основе функции BIOS Int13/42 (когда другие средства спасения использовать невозможно). Процесс выполняется на уровне секторов (LBA) и знаний структур HDD и файловых систем (одна из тем курсов 1020 и 1010).

Запускаем afd.com и загружаем ch_lba.com ,..

 

Нажимая клавишу F2 пошагово выполнили программу и остановились на команде

INT 20. Мы прочитали в буфер (окно 2 с адреса 240) LBA 0 (т. е. Mboot-сектор).

Листая окно 2 переместипись в конец Mboot-сектора (видим сигнатуру 55 АА).

Раздел NTFS (07) начинается с LBA 00 12 C3 81 — это и адрес BOOT-сектора раздела.

Нажимая клавишу F2 еще раз пошагово выполнили программу и остановились на

команде INT 20. Мы прочитали в буфер (окно 2 с адреса 240) Boot-сектор (12с381).

В первой строке Boot-сектора мы видим размер блока данных сектора (0200h) и размер

кластера (01 сектор). По адресу 0270 мы видим номер начального кластера файла $MFT

00 00 00 00 04 24 95.

Пересчитаем номер кластера в номер сектора : получили 16 Е8 16

Прочитаем 10h секторов (8 записей) файла $MFT. Прочитали :

По атрибуту 30 (имя файла) убедимся, что мы в 0-й записи файла $MFT.

Да мы в 0-й записи файла $MFT.

Нам нужен корневой каталог (его определяет 5-я запись файла $MFT) ...

В атрибуте 30 5-й записи должно быть имя 2Е 00 (точка) и атрибут А0 00 00 00.

 

Это мы видили ...

В атрибуте А0 00 00 00 видим блок VCN (31 08 2E 37 06). Пересчитаем номер

кластера в номер сектора :

Прочитаем 10h секторов файла каталога.

Прочитали : INDX – начало каталога.

Ищем в каталоге блок с именем AFD.COM … Нашли :

Находим начало этого каталожного блока (первые 6 байтов — это номер записи файла

$MFT определяющей файл AFD.COM). Номер записи = 30.

Прочитали 30-ю запись (16 е8 16 +30х2)=16 е8 76 :

Проверяем атрибут 30 (там должно быть имя файла AFD.COM ...

Нашли AFD.COM ...

Нашли атрибут 80 и в нём блок VCN (32 80 00 E2 B4 05).

Файл содержит 80 кластеров (80 секторов), прочитаем его частями по 40 секторов и

сохраним эти части в виде файлов, а затем их объединим в один файл …

Начальный сектор файла AFD.COM = 12с381+(05В4Е2 х 1) = 187863

Прочитали первую часть и сохранили в виде afd001.com …

Прочитали вторую часть и сохранили в виде afd002.com …

Вышли из профотладчика (quit).

Вышли из профотладчика и видим два файла afd001.com и afd002.com ...

Обединяем эти два файла (afd.001.com и afd.002.com) в один ...

 

Получился файл afd001, но нет расширения имени файла .com. Переименуем ...

 

Проверим работоспособность “спасенного” файла ...

 

 

 

Проверка прошла успешно. Завершаем (quit) ...

 

 


Лицензия