Como descriptografar o cartão SD corrompido formatado como armazenamento interno?

10

Então, eu estou no Marshmallow e formatei meu cartão SD como armazenamento interno. Seu sistema de arquivos ficou corrompido duas semanas depois, por algum motivo.

Ao conectá-lo ao GParted, vejo 16 MB de FAT32 e o restante é um sistema de arquivos não reconhecido. Não é não formatado, apenas não reconhecido.

GParted está fornecendo o "Não é possível ler o conteúdo do sistema de arquivos". erro para ambas as partições, embora a partição FAT32 esteja acessível no Navegador de Arquivos na perfeição.

É um Samsung i9505 rodando no Cyanogenmod 13 noturno.

EDIT: Descobri que as partições não reconhecidas são um ext4 criptografado estático AES-128 bits. Agora vou tentar decifrá-lo e recuperar o que quer.

EDIT2: Mudei de idéia e não vou incomodar. Formatação como armazenamento externo neste momento.

Doruk Karınca
fonte
Quão comum é isso?
William William

Respostas:

9

Mesmo que não responda totalmente à pergunta, aqui está um guia para descriptografar o armazenamento externo formatado como interno. Você precisa ser root no seu telefone, no entanto.

A essência é que procuramos por strings, incluindo a palavra-chave expande terminando com .keyinside voldusando:

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

Retorna uma chave de 16 bytes.

expand_8838e738a18746b6e435bb0d04c15ccd.key

Então você passa a chave para esse garoto mau:

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

E monte isso em:

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

Agora você pode cptudo em outro lugar e espero salvar alguns dados. Lembre-se de excluir qualquer dado relacionado a chave ( grep) ao fazê-lo, caso deseje reformatar como interno novamente e colocar suas coisas de volta.

Doruk Karınca
fonte
3
Você pode usar hexdump -e '1/1 "%.2x"' expand_8838e738a18746b6e435bb0d04c15ccd.keypara converter binário em hexadecimal.
Dzwiedziu-nkg 23/08
Onde exatamente você executa esses comandos?
217 Royi
@Royi Você conecta seu cartão SD a um computador Linux.
Doruk Karınca
Para ser exato, a chave de armazenamento expandido de nomeado expand_8838e738a18746b6e435bb0d04c15ccd.key(o número hexadecimal real depende do seu dispositivo de armazenamento expandido) precisa ser buscada ou lida no telefone. O arquivo geralmente está localizado no diretório /data/misc/volde o diretório pode conter várias chaves se vários cartões SD tiverem sido usados. Observe que você precisa ter rootacesso ao seu telefone para ver o conteúdo dos arquivos de chave e extrair a chave de criptografia necessária.
Mikko Rantalainen 3/08/19