[Из песочницы] Удивительное устройство USB-флешки Kingston DataTraveler DT6000 и восстановление информации, утраченной в результате сбоя

Приветствую уважаемых Хабровчан. Я Артем Макаров aka Robin, ведущий инженер компании Хардмастер, уже много лет специализируюсь на восстановлении данных с разнообразных носителей, и сегодня я хотел бы поделиться с вами историей восстановления файлов с одной весьма любопытной флешки. Надеюсь получить отзывы на свой хабродебют в комментариях.Несмотря на то, что перевидать всяких девайсов довелось огромную кучу, с задачей, подобно описываемой далее, раньше мне сталкиваться не приходилось.

ПреамбулаИтак, USB Flash диск Кингстон DT6000, заявленный производителем, как надежное хранилище файлов, с использованием криптостойкого алгоритма AES256 FIPS140–2 Level 3.Логически флеха устроена следующим образом: раздел 68 мегабайт отформатированный в FAT16, является своего рода загрузочным. Когда девайс подключают к ПК, срабатывает автозапуск (либо пользователю предлагается запустить экзешник):

bf1b12c3528045b7aad07297390dfccf.jpg

После чего на первый план выходит вот такое окошко:

455bdeb1adb64024856ec06f81208bc8.jpg

Вводим пароль, вуаля — монтируется скрытый раздел с заботливо попрятанными фото и видео известного содержания.

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

Первым делом, подключив накопитель к тестовому ПК и открыв любимый шестнадцатеричный редактор WinHEX я полез в список физических дисков. Так и есть, два тома. Первый пустой, и что самое главное — в режиме «только для чтения»! Второй недоступный. Снял образ с первого раздела, проанализировал. Обе копии таблиц FAT в нормальном виде отсутствуют.

68af96c05f424c74aad3dfc9f2c26e45.jpg

То есть с возможностью достать с «загрузочного раздела» файлы с именами и структурой можно попрощаться. «Черновым восстановлением» или восстановлением по известным заголовкам файлов (оно же raw recovery) удалось выдернуть некий zip архив и pdf-ку. По содержимому последней стало ясно, как всё было устроено, и чего на загрузочном разделе не хватает.

Учитывая, что раздел залочен производителем на запись, было ясно что ни о каком случайном форматировании со стороны пользователя речи, в данном случае, быть не может, и наиболее вероятная причина «обнуления» раздела — сбой в области таблиц трансляции обработки NAND, в результате чего часть корректных блоков была подменена на «альтернативные».

Этот эффект носит название «псевдо-логическая проблема с флешкой» и выглядит как глюк на уровне файловой системы, на самом деле являясь сбоем, по сути, аппаратным. А значит, скорее всего, придётся флешку препроводить на патологоанатомический стол и подвергнуть вскрытию, с целью отпаять микросхему (ы) памяти и попытаться собрать из прочитанных образов что-то осмысленное.

О шифровании и о том, как вообще собирать дампы с шифрованным контентом, на тот момент голову не стал забивать.

Проблемы полагается решать по мере их появления, поэтому первым делом надо было отыскать DT6000_Launcher со всем окружением. На сайте производителя, соответствующий продукту раздел загрузок был пуст. Оно и логично — смысл загружать файлы если предполагается что ты не сможешь их записать (см. залоченная запись)? Кинул клич коллегам по цеху. Нужные файлы прислали. Следующая проблема — указать лаунчеру где у нас шифрованное.

Попытки разлочить раздел FAT16 на самой флешке средствами ОС и записать лаунчер на него успехом не увенчались. Попытки запустить лаунчер с другого носителя и натравить на исследуемую флешку так же оказались безуспешными. Дальнейшее аппаратное вмешательство во внутренности Дата Травелера становилось неизбежным.

«Ну, сегодня нас ожидает несколько сенсаций…» © Удалив внешний пластиковый корпус пытливому взгляду исследователя открылось вот такое: ec1785fcad37446f856efb35d28c30e4.jpg

За исключением USB разъема всё залито пластиком. Убрать его получалось с помощью термовоздушной паяльной станции, нагревая область за областью до температуры примерно 150 С, после чего пластик начинал потихоньку гнуться и небольшими кусочками откалываться. Орудуя стоматологическими крючками и скальпелем, чувствуя себя археологом, очистил от пластика одну сторону. Увидел следующее:

b9954ac3e80241cc9c6a13aa30316d04.jpg

АРМ-контроллер LPC3131FET180, плиска 3s500e (она же ПЛИСС, PLD — программируемая логическая интегральная схема) от XILINX, криптомодуль ROSETTA от компании Spyrus и Атмеловская ПЗУ-шка 25DF081A. Надо браться за вторую половину, ибо искомой НАНД памяти пока не обнаружено.

Начинаю счищать вторую сторону. Появляется что-то блестящее. Кварц? Не похоже. Еще пара размашистых ударов кувалды и зубила, опаньки — картридер!

59d1a5cfb0d540f9aff16ee0df39eeef.jpg787166db28744b3c9d00dd6de6bb59f1.jpg

Видать кризис ударил и по Кингстону. Чтобы не заморачиваться с аппаратной реализацией полноценного флеш-накопителя орлы из корпорации Kingston закупили у дядюшки Ляо партию MicroSD по сходной цене и навесили сверху шифровалку, обильно залив всё быстро застывающей пластмассой. Чтоб никто не догадался, стало быть. Учитывая внушительный прайс, за который торгуют этот DT6000 на том же ЯндексМаркете — профит производителя очевиден.

Выколупываем микро-сдшку, всё залито пластиком и приклеено со всех сторон. Дочищаем остатки, кроме обвязки смотреть там больше не на что.

7bc5f4e2b2e9437ca549b6f431814878.jpg4b317b51a9d54e8e918dd43ca3a130c0.jpg

Финишная прямая Вставляю извлеченную из-под завалов пластика MicroSD в карт-ридер. Флешка определяется на все свои 16 гигов. С нулевого сектора характерный для шифрования «белый шум».3daeb0a346ee4985a00a16c84e9da54e.jpg

Примерно с середины — нули. Смотрю под хвост. Опа, —, а вот и наш «загрузочный» раздел! Определил начало и кончало раздела, сравнил с ранее снятым образом, когда безродная MicroSD была еще породистым Kingston DataTraveler — отличия не обнаружены.

2c3e93df73f245eea0668c3afe3d8d21.jpg

Ввиду открывшихся дополнительных обстоятельств первоначальной гипотезе о подмене блоков в таблице трансляции NAND присваивается статус «несостоятельная», и на место рабочей встает предположение о глюке шифровальной навески, она же строитель представления логической разметки микро-сд на УСБ интерфейсе DT6000.

Беру живую 32-х гиговую USB флешку. Прописываю, для чистоты эксперимента, в том же ВинХексе её нулями сверху донизу. В начало пишу ранее склоненный раздел. На него записываю с трудом добытый лаунчер, dt6000.zip и manifest.xml. Запускаю, ввожу пароль, сообщение о том, что шифрованный раздел не найден или поврежден.

В сектор, следующий за последним сектором «загрузочного» раздела вписываю образ всей шифрованной MicroSD целиком.Запускаю лаунчер, ввожу пароль. Бинго! Шифрованный раздел найден, подмонтирован,

6665bda253b046e598c17cabe773613e.jpg

Все пользовательские файлы на месте — можно копировать.

© Habrahabr.ru