¿Cómo descifrar la tarjeta SD corrupta formateada como almacenamiento interno?

10

Así que estoy en Marshmallow y he formateado mi tarjeta SD como almacenamiento interno. Su sistema de archivos se corrompió dos semanas después por alguna razón.

Al conectarlo a GParted, veo 16 MB de FAT32 y el resto es un sistema de archivos no reconocido. No está sin formato, simplemente no reconocido.

GParted está dando el mensaje "No se puede leer el contenido del sistema de archivos". error para ambas particiones, aunque la partición FAT32 es accesible desde el Explorador de archivos sin problemas.

Es un Samsung i9505 que se ejecuta en Cyanogenmod 13 construido por la noche.

EDITAR: descubrí que las particiones no reconocidas son un ext4 cifrado estático AES-128 bit. Ahora intentaré descifrarlo y recuperar lo que sea.

EDIT2: Cambié de opinión y no me molestaré. Formateo como almacenamiento externo esta vez.

Doruk Karınca
fuente
¿Qué tan común es esto?
William

Respuestas:

9

Incluso si no responde completamente la pregunta, aquí hay una guía para descifrar el almacenamiento externo formateado como interno. Sin embargo, debe ser root en su teléfono.

La esencia es que buscamos cadenas que incluyan la palabra clave expandy que terminen .keydentro voldusando:

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

Devuelve una clave de 16 bytes.

expand_8838e738a18746b6e435bb0d04c15ccd.key

Luego le pasas la llave a este chico malo:

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

Y montar eso en:

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

Ahora puede cphacerlo todo en otro lugar y, con suerte, guardar algunos datos. Recuerde excluir cualquier dato relacionado con la clave ( grep) al hacerlo, en caso de que quiera formatearlo nuevamente como interno y volver a colocar sus cosas.

Doruk Karınca
fuente
3
Puede usar hexdump -e '1/1 "%.2x"' expand_8838e738a18746b6e435bb0d04c15ccd.keypara convertir binario a hexadecimal.
Dzwiedziu-nkg
¿Dónde exactamente ejecutas esos comandos?
Royi
@Royi Usted conecta su tarjeta SD a una computadora Linux.
Doruk Karınca
Para ser exactos, la clave de almacenamiento expandida de named expand_8838e738a18746b6e435bb0d04c15ccd.key(el número hexadecimal real depende de su dispositivo de almacenamiento expandido) debe buscarse o leerse desde el teléfono. El archivo generalmente se encuentra en el directorio /data/misc/voldy el directorio puede contener varias claves si se han utilizado varias tarjetas SD. Tenga en cuenta que debe tener rootacceso a su teléfono para ver el contenido de los archivos de clave y extraer la clave de cifrado requerida.
Mikko Rantalainen