Восстановление флешки Kingston

Сегодня хочу продолжить тему восстановления информации с USB флеш дисков и карт памяти и поговорить о новом коварстве производителей, усложняющих процесс восстановления данных с поломанных флешек и делающих восстановление информации с диска более трудоемким и дорогостоящим.

Как я уже упоминал ранее, информация в микросхемах NAND не лежит в линейном виде, как например на CD или DVD, а поделена на фрагменты (блоки и страницы) и зачастую распараллелена между банками в пределах одной стековой или нескольких микросхем памяти. Сделано все это для того, чтобы как можно более увеличить срок службы относительно недолговечных микросхем памяти, а так же увеличить скорость чтениязаписи устройства в целом.

Но в более-менее свежих флешках используется еще один механизм, призванный продлить время работы USB накопителя - этот метод носит названия XOR преобразований в структуре данных. Что такое XOR? Если кратко - это алгоритм удаления корреляции данных, который создает "псевдошум", что приводит к равномерной загрузке переходов у транзисторов и снижает вероятность выхода микросхемы памяти из строя по причине ускоренного "старения" одних банков по отношению к другим. Микросхема "изнашивается" равномернее и служит тем самым дольше. Кроме того, уменьшение взаимовлияния ячеек памяти друг на друга приводит и к уменьшению вероятности появления ошибок чтения.

Алгоритмы формирования XOR для области данных и области служебной информации достаточно разнообразны, разумеется недокументированны для широкой публики и восстановление информации в случаях, когда данные на микросхеме поксорены (а это встречается очень часто на всех флешках с объемом 16 гигабайт и выше) представляет собой очень нетривиальную задачу. Приведу наглядный пример: на восстановление информации принесли USB drive Kingston Data Traveler 16Gb на микроконтроллере SSS6691. Диск определяется в системе, монтируется том (в диспетчере устройств появляется буква) но физического доступа к диску нет. Причина такого поведения - повреждения служебных областей контроллера. Раньше, когда гиговая флешка была роскошью, в таких случаях можно было восстановить информацию, отыскав аналогичный исправный диск и перепаяв микроконтроллер. Сейчас этот метод уже не работает, так как в современных флешках служебные области контроллера хранятся в NAND. Т.е. заменив микроконтроллер вы ничего не измените в состоянии диска.

Поэтому путь для восстановления данных с поломанной USB Kingston в данном случае один - разбирать корпус флехи, выпаивать память и читать на программаторе. Дальше начинается самое интересное - беглый взгляд на полученные дампы позволяет с высокой степенью вероятности определить наличие XOR преобразований. Как XOR визуально отличить от шифрования я расскажу в одной из следующих статей.

Что делать далее? Очевидно - воспроизвести математические преобразования, которые сделал контроллер обратным порядком. Определить этот самый порядок преобразований можно несколькими способами.

Самый простой и очевидный: купить аналогичную исправную флешку, заполнить ее неким паттерном и разобрав и распаяв снять дампы, после чего относительно несложно получить ключ для XOR который подойдет для области данных сектора. Но в секторе есть еще область служебной информации, с номером (амии) маркера, полями ECC коррекции, что является критически важным для построения финальных преобразований тем или иным типом сборщика (сборщики отличаются по типам контроллеров и ряду других признаков). Получение ключа на XOR для служебки гораздо более сложная задача. Это тяжело сделать даже для более-менее изученных контроллеров, а с новыми, еще неопробоваными, вообще можно голову сломать. В итоге нужно сформировать лишь файл-ключ, который учтет всю цикличность ротаций и базового преобразования.

В описанном мной случае я пошел следующим путем: после сохранения дампов с микросхем памяти и сервисной утилитой восстановил транслятор в контроллере. Эта операция деструктивна для данных, если вы отыскали на просторах интернета сервисную программу для форматирования поломанной флешки, то после ее запуска информацию восстановить уже не получится. Получив исправный девайс, я записал всю область пользовательских данных паттерном 77h. В hex редакторе это выглядит следующим образом:

Паттерн 77h Помощь для определения XOR преобразований
Паттерн 77h Помощь для определения XOR преобразований

После чего снова отпаял микросхемы памяти и считал новые дампы. Стройный ряд семерок подвергшихся XOR преобразованию выглядит вот так:

Во что превратился ряд семерок
Во что превратился ряд семерок

Несложно представить себе, как непросто получить ключ к данным, когда нет помогалки в виде паттерн-заготовки. После воссоздания XOR ключа семерки уже видны:

Ключ подобран, ксор устранен
Ключ подобран, ксор устранен

служебная область сектора

Служебка секторов flash памяти
Служебка секторов flash памяти

Теперь, после устранения XOR, можно определять микс, в моем случае это Block pair 0x218000 8576 и применять сборщик, в описанной флешке оказался размер блока 0x430000 и геометрия сектора (512/0/512/46/512/0/512/46/512/0/512/46/512/0/512/46/512/0/512/46/512/0/512/46/512/0/512/46/512/0/512/62)*384/0/1097728. После чего можно корректировать ошибки чтения с помощью ECC кодов коррекции и на выходе получить успешно восстановленные данные.

Оставить комментарий

Читать комментарии к статье

Оставить комментарий:

Текст на изображении: Дайте понять, что вы не спамер Если вам не понятен текст на изображении обновите страницу, нажав F5

x3m
Спасибо. Познавательная информация.

Бывают флэшки используют аппаратное шифрование AES то восстановить вряд ли что получиться.

Или есть лазейки? :)
Robin
Все верно, шифрование преследует по сути ту же цель, что и XOR, плюс защита данных пользователя от доступа третьим лицам. Тем не менее восстановить данные с флешки, на которой микроконтроллер в фоновом режиме проводил шифрование вполне возможно. В ряде случаев для этого нужен аналогичный исправный накопитель, а иногда можно обойтись и без него.

Заметки схожей тематики:

Ремонт SSD Smartbuy Revival 480GB

Вероятность восстановления данных с флешки

Ремонт SSD SmartBuy Ignition 2 с контроллером Phison PS3108-S8