January 8, 2019

Восстановление данных из пустого места

А интересен он тем, что из полностью обнулённой USB флешки, мы удачно восстановили данные. Если интересно как? Добро пожаловать под кат…

Предложение отформатировать накопитель Windows выдаёт в тех случаях, когда не может определить на устройстве файловую структуру, вот и предлагает создать новую, путём форматирования.

В нашем случае нужны данные и форматировать нельзя. Смотрим дисковым редактором, что же случилось с файловой структурой.

WinHex:

Опаньки… Все! Все 32 гигабайта «залиты» нулями… Данных нет! Шеф, всё пропало.

Сразу спрашиваем клиента, не давал ли кому? и тот злобный товарищ не запускал ли утилиты ремонта? Ответ: Нет, сразу к вам.

Если флешку ни кто не «прошивал» и не записывал её паттерном, то не могла же она в миг обнулиться, на это требуется время и действие.

Ок, русские не сдаются. Спаяем микросхему и посмотрим содержимое памяти напрямую, в обход контроллера. В данном случае в одном корпусе два кристалла, Вместе со служебной информацией получается два дампа по 18гб.

В дампе не нули, но это ещё ни о чём не говорит, так как на современных флешках контроллер пишет данные не в явном виде, а через XOR операцию.

Если все блоки одинаковы, то да, накопитель залит одним и тем же. Но нам повезло они разные, а это данные!

Нужно подобрать ксор, и собрать блоки в нужной последовательности по алгоритму контроллера.

Пошаманим ростовским комплексом

И вауля, 26 гигабайт данных, 9000 файлов, битых из них 900. К сожалению картинку с данными мы не имеем права выкладывать, так как у нас в конторе конфиденциальность превыше всего.

В заключении этой мини истории со счастливым концом (клиент сначала расстроился, что там одни нули), нужно написать почему не все файлы корректно восстановились.

Качество современных чипов памяти весьма печальное, и несмотря на громогласные заявления производителей о том, что вот мы сделали огромное количество циклов записи… статистика показывает обратное. Износ происходит очень быстро, по сравнению с флешками которые измерялись мегабайтами. Ну не будем об этом здесь и сейчас.

Касательно этого случая, флешка умирала и «сигнализировала» об этом косвенным путём, а именно: запускалась проверка диска, результат работы чекдиска — папка FOUND, в восстановленных данных присутствует. Это уже были первые звоночки, что она «сыпется».

Контроллер увидел, что количество плохих ячеек памяти уже огромное и сделал такой «финт ушами» как, отдача в интерфейс нулей.

Нам же пришлось вычитывать битые сектора, многократным чтением, какие-то из них удалось прочитать или восстановить из ECC. Как результат – клиент доволен. А начиналось то всё, с пустого места…