如何解密格式化为内部存储的损坏的SD卡?


10

因此,我正在使用棉花糖,并已将我的SD卡格式化为内部存储设备。两周后,由于某种原因,其文件系统损坏。

将其插入GParted,我看到16MB的FAT32,其余的是无法识别的文件系统。它不是未格式化的,只是无法识别的。

GParted给出了“无法读取文件系统的内容”。尽管可以从文件浏览器完美访问FAT32分区,但两个分区都出现错误。

这是一台运行在夜间建造的Cyanogenmod 13上的三星i9505。

编辑:我发现无法识别的分区是静态AES-128位加密的ext4。现在,我将尝试对其解密并恢复任何内容。

EDIT2:我改变了主意,不再打扰。这次格式化为外部存储。


这有多普遍?
威廉

Answers:


9

即使它不能完全解决问题,这里还是一个指南,用于解密格式化为内部格式的外部存储。但是,您确实需要扎根手机。

要点是,我们搜索字符串包括关键字expand和结尾.keyvold使用:

$ 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在执行此操作时,请排除任何与密钥相关的数据(),以防您想重新格式化为ınternal并将其放回原处。


3
您可以使用hexdump -e '1/1 "%.2x"' expand_8838e738a18746b6e435bb0d04c15ccd.key将二进制转换为十六进制。
Dzwiedziu-nkg '16

您究竟在哪里运行这些命令?
罗伊

@Royi您将SD卡插入Linux计算机。
DorukKarınca'3

确切地说,expand_8838e738a18746b6e435bb0d04c15ccd.key需要从电话中获取或读取具名的扩展存储密钥(实际的十六进制数字取决于您的扩展存储设备)。该文件通常位于目录中/data/misc/vold,如果使用了多个SD卡,则该目录可能包含多个密钥。请注意,您必须有权root访问手机以查看密钥文件的内容并提取所需的加密密钥。
Mikko Rantalainen
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.