Как расшифровать поврежденную SD-карту, отформатированную как внутренняя память?

10

Так что я на Зефире и отформатировал мою SD-карту как внутреннюю память. Его файловая система по какой-то причине испортилась через две недели.

Подключив его к GParted, я вижу 16 МБ FAT32, а остальное - нераспознанная файловая система. Это не отформатировано, просто непризнано.

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

Это Samsung i9505, работающий на ночной базе CyanogenMod 13.

РЕДАКТИРОВАТЬ: я обнаружил, что нераспознанные разделы являются статическим AES-128-битным зашифрованным ext4. Теперь я попытаюсь расшифровать его и восстановить все, что угодно.

EDIT2: я передумал и не буду беспокоиться. На этот раз форматирование как внешнее хранилище.

Дорук Каринца
источник
Насколько это распространено?
Уильям

Ответы:

9

Даже если это не полностью отвечает на вопрос, вот руководство по расшифровке внешнего хранилища, отформатированного как внутреннее. Тем не менее, вам нужно быть пользователем root на вашем телефоне.

Суть в том, что мы ищем строки, включая ключевое слово expandи заканчивающиеся .keyвнутри, voldиспользуя:

$ strings vold|grep -i expand
--change-name=0:android_expand
%s/expand_%s.key
/mnt/expand/%s

Возвращает 16-байтовый ключ.

expand_8838e738a18746b6e435bb0d04c15ccd.key

Затем вы передаете ключ этому плохому парню:

# dmsetup create crypt1 --table "0 `blockdev --getsize /dev/sdb2` crypt \
aes-cbc-essiv:sha256 00010203040506070809010a0b0c0d0e0f 0 /dev/sdb2 0"

И смонтировать это в:

# mount -t ext4 /dev/mapper/crypt1 /mnt/1/
# cd /mnt/1
# find ./ -type d

Теперь вы можете cpвсе остальное и, надеюсь, сохранить некоторые данные. Не забывайте исключать любые связанные с ключом данные ( grep) при этом, на случай, если вы захотите снова переформатировать как внутренний и вернуть свои данные обратно.

Дорук Каринца
источник
3
Вы можете использовать hexdump -e '1/1 "%.2x"' expand_8838e738a18746b6e435bb0d04c15ccd.keyдля преобразования двоичного в шестнадцатеричное.
Dzwiedziu-nkg
Где именно вы запускаете эти команды?
Рой
@Royi Вы подключаете свою SD-карту к компьютеру с Linux.
Дорук Каринка
Точнее говоря, расширенный ключ хранения named expand_8838e738a18746b6e435bb0d04c15ccd.key(фактическое шестнадцатеричное число зависит от вашего расширенного запоминающего устройства) необходимо получить или прочитать с телефона. Файл обычно находится в каталоге, /data/misc/voldи каталог может содержать несколько ключей, если использовалось несколько SD-карт. Обратите внимание, что у вас должен быть rootдоступ к вашему телефону, чтобы просмотреть содержимое файлов ключей и извлечь необходимый ключ шифрования.
Микко Ранталайнен