Укрощение @Интернет@


A: Как восстановить файл, некорректно принятый ReGet? - часть 2


Хуже, если требуется восстановить ранее скаченные файлы, содержащие мусор в середине. Сразу же возникают две проблемы – как определить где именно расположен мусор, и как заставить ReGet скачать фрагмент файла "от сих" – "до сих" для замены поверженного участка на новый?

Поиск сбойного фрагмента – самое сложное в операции восстановления. Отличить мусор от полезной информации, можно только зная структуру поверженного файла. С "текстовиками" никаких проблем нет – искомое место обнаруживаться визуальным просмотром, а вот как быть с остальными типами файлов? В результате серии экспериментов автором было установлено, что в мусоре присутствует по крайне мере одна регулярная структура – длинная цепочка из нескольких сотен нулей. Такая последовательность никогда не встречается в архивах и некоторых других типах файлов (например, pdf, rtf), поэтому она может служить своеобразной меткой – сигнатурой мусора. К сожалению, с другими форматами файлов дело обстоит сложнее, в частности, исполняемые файлы (в том числе и самораспакующиеся архивы) этими самыми нулевыми байтами могут быть напичканы под самую завязку – попробуй, разберись мусор это или нет!

Разберем для примера тривиальный случай. Допустим, при распаковке image4.zip (архив космических фотографий, взятый с http://stuma.simplenet.com/ds2000files/images4.zip) выдается ошибка извлечения файла "Inflating: EUROPA2.tif  PKUNZIP: (W15) Warning! file fails CRC check"

Загрузим поврежденный архив в HIEW и попытаемся отыскать цепочку, состоящую более чем из десяти следующих друг за другом нулевых байт (<F7>, <Tab>, "00 00 00 00 00 00 00 00 00 00"):

Опаньки! Взгляните, что мы обнаружили!

002E6460:  68 D3 C9 38-16 B2 52 1E-B5 3F D3 0E-94 71 AE E4

002E6470:  5F DE 79 9F-99 E1 CD F9-56 D0 6A AC-64 37 F0 2D

002E6480:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E6490:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00

002E64A0:  00 00 00 00-00 00 00 00-00 00 00 00-00 00 00 00




Начало  Назад  Вперед



Книжный магазин