内部ストレージとしてフォーマットされた破損したSDカードを復号化するにはどうすればよいですか?


10

マシュマロを使用していて、SDカードを内部ストレージとしてフォーマットしました。そのファイルシステムは、何らかの理由で2週間後に破損しました。

GPartedに接続すると、16MBのFAT32が表示され、残りは認識されないファイルシステムです。フォーマットされておらず、認識されていないだけです。

GPartedは「ファイルシステムの内容を読み取れません」と表示しています。両方のパーティションでエラーが発生しましたが、FAT32パーティションはファイルブラウザから完全にアクセスできます。

これは、毎晩構築されたCyanogenmod 13で動作するSamsung i9505です。

編集:私は認識できないパーティションが静的なAES-128ビット暗号化ext4であることを発見しました。今、私はそれを解読して、何でも回復しようとします。

EDIT2:私は気が変わったので気になりません。今回は外部ストレージとしてフォーマットします。


これは一般的ですか?
ウィリアム

回答:


9

それでも完全に質問に答えることはできませんが、内部としてフォーマットされた外部ストレージを復号化するためのガイドを次に示します。ただし、スマートフォンのrootである必要があります。

要点は、キーワードexpandを含み、.keywithin で終わる文字列を検索することです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その際、キーに関連するデータ()を除外することを忘れないでください。これは、もう一度ınternalとして再フォーマットして、データを元に戻す場合に備えてください。


3
を使用hexdump -e '1/1 "%.2x"' expand_8838e738a18746b6e435bb0d04c15ccd.keyして、バイナリを16進数に変換できます。
Dzwiedziu-nkg

これらのコマンドを正確にどこで実行しますか?
Royi 2017年

@Royi SDカードをLinuxコンピューターに接続します。
DorukKarınca2017年

正確には、namedの拡張ストレージキーexpand_8838e738a18746b6e435bb0d04c15ccd.key(実際の16進数は拡張ストレージデバイスによって異なります)は、電話からフェッチまたは読み取る必要があります。ファイルは通常ディレクトリに/data/misc/voldあり、複数のSDカードが使用されている場合、ディレクトリには複数のキーが含まれる場合があります。rootキーファイルの内容を確認し、必要な暗号化キーを抽出するには、電話にアクセスできる必要があることに注意してください。
ミッコランタライネン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.