「GoProで使っていたMicroSDカードのデータ読み込みができなくなった」とMicroSDカードのデータ復旧をご依頼いただきました。「Windows10のエクスプローラーで見ると、ファイル、フォルダが文字化けしている。撮影中にバッテリーが切れたので、その影響でおそらくFATが破損しているのではないか」と詳しい状況もお知らせいただきました。
お預かりしたMicroSDは「SanDisk Extreme PRO」容量1TBのMicroSD。表面を見たところ、なんとなく違和感を覚えます。印刷のテカリといい、文字の大きさやバランス、何かしっくりしません。
まずはこのカードの仕様を確認しようと、SanDiskの日本公式サイト(SanDiskはWesternDigitalが買収しWesternDigitalのブランドとなっています)を見ると「Extreme PRO」はSDカードのみでMicroSDは掲載されておらず、米国サイトを見るとExtreme PROのMicroSDは 32GB~1TBまでラインナップされていました。
ということは、ご依頼の製品は並行輸入品で、国内には正規輸入品は存在していない可能性が高い製品です。SanDisk公式ページでの価格は$169.99、日本円換算で27,000円位(2024年7月時点・1USD=160JPYで計算)します。書き込み性能も最大140MB/Sとハイパフォーマンスの製品です。
次に裏面を見ます。またまた違和感を覚えました。見覚えのあるSanDiskのMicroSDとは明らかに異なるマーキングだからです。カードを横にして横方向にマーキングがなされています。
今まで見てきたSanDiskの製品は、カードを縦にして横方向にマーキングされており、文字ももっと小さいし、大きなCEマークもありません。
怪しいと思いながらも診断機(PC-3000)に接続し容量を確認します。容量999.02、総セクタ数 2,095,106,048 を表示しました。「999GB」がどうも引っかかる、と思いながらも、作業用にディスクイメージの取得を開始します。
データ復旧は、元のデータを確実に保全するために、データが入っている入っていないにかかわらず、全領域の完全コピーであるディスイメージを作成します。ところがコピー速度が3.1MB/Secしか出ず非常に遅いのです。とても最大140MB/Sを謳う製品には思えません。動画を撮影したらコマ落ちするレベルです。MicroSDの表面に各種のマークがプリントされています。右にある「V30」はビデオスピードクラス、動画を撮影する際の書き込み速度30MB/Sを意味し、左の「U3」はUHSスピードクラスで30MB/Sを示しています。
あまりの遅さに100GB程度でイメージ取得を止め、パーティションの状況を確認します。
FAT32のパーティションが検出されました。ここでまたまた疑問。容量1TBあるのに、なぜFAT32なのだろうか?この容量ならexFATではないのか?ファイル名も文字化けしていますし、タイムスタンプも「1980年」とあり得ない時間のものもあります。これはFATを解析したところで、まともなデータは出現しないでしょう。
ファイルシステムが破損しているので、RAW解析を行います。RAW解析とは、ファイルの先頭にある特徴的な部分を検出し、強制的にファイルの形に切り出す復旧方法です。例えばJPEGファイルをバイナリエディタで開いてみると、データの先頭は「FF D8 FF」というデータから開始されているのがわかります。データ領域から「FF D8 FF」で始まる文字列を探せばJPEG画像を探し出せるのです。
ファイルカタログ情報が破損しているときなど、データ領域から洗いざらいデータを回収する場合や、デジタルフォレンジックで使われる手法です。ファイルカービング、またはヘッダ切り出しと呼んでいます。
容量80GB程度のところで一旦停止させて状態を確認します。JPEG画像、MPEG-4動画が多数確認でき、ファイルも正常なようですが、突如LBA121,733,724からエラーとなりました。LBA順にファイルが並び、先頭にあるグリーンのマークが正常なファイル、赤は異常を示しています。
正常なデータが確認できるLBAは116,218,760まで。1セクタ512KBで容量を計算すると、約59.5GBの位置です。つまり、約60GBくらいまでは正常に書き込まれるが、それ以降は書き込みがエラーとなっています。エラーとなっているファイルを確認すると、同じ容量のファイルが多数記録されているのがわかります。
うすうす気づいていましたが、このMicroSDはSanDiskブランドを装った偽装品です。容量も偽装、性能も偽装、すべてが偽装されたMicroSDなのです。
もう一度裏面の刻印を見てみましょう。MMSZ64AU39T25-RDの刻印があります。経験則ではこの位置にある数字「64」は容量です。このカードは容量64GBしかない製品を不正に改造して、1TBに偽装されたものなのでしょう。
どのように偽装されているのか考察してみます。MicroSD(MicroSDに限らず、HDDやSSDなどのストレージ製品)はOSなどアプリケーション側からは「LBA」でセクタを指定します。LBAとは「Logical Block Addressing」の略で論理的なセクタアドレスを意味し、0番から順に1セクタ毎に1アドレスが割り振られています。
書き込まれる側のメモリにもアドレスがあり、こちらは物理アドレスなどと呼ばれています。メモリコントローラーで管理する「変換テーブル」で論理アドレスと物理アドレスを紐づけています。
どうして直接メモリにLBAを振らないかといえば、セクタ(セル)が不良となった際に予備のセクタに付け替えが容易にできる、チップが複数枚に分かれている場合にはRAID的に組めるなどメリットがあるからです。
おそらくこの偽装品は、60GB程度までは論理アドレスと物理アドレスが正しく関連付けされているので、データも問題なく保存されるのですが、それを超えた段階で、小さな数百MB分の物理的な領域を繰り返し指定しているのではないかと思われます。
すなわち変換テーブルを改造し、最後の数百MB分だけ、エンドレステープのように繰り返し同じ部分に記録されるという、なんとも悪知恵働かせたなと言わざるを得ない仕込みがされているのです。表面にプリントされたブランドを書き換えただけならまだしも、最初は正常に録画され、しばらくすると録画されているように見せかけるところが非常に悪質です。
お客様に容量偽装品の被害に遭った可能性があることをご報告し、このまま復旧作業を進めるか確認をしたところ、60GB分の可能な限りのデータを復旧して欲しいとご依頼を頂きました。
容量偽装のカードに通常の復旧作業を行うと、1TB容量があると認識されてしまい、後ろのエンドレステープ状の部分からゴミが多数出現するので、64GB相当のデータをカットして解析を掛けます。
RAW解析で出現した動画データはそのままでは再生できないので、GoProのデータに合わせて補正を行い再生できるように処置しました。非常に手間がかかりましたが結果約50GBのデータだけはなんとか再生できる状態で救出させることができました。但し、3MB/Sしか速度が出ないカードで記録したものなので、高画質で撮っていたとしたらコマ落ちは相当数含まれていると思われます。
当Blogをご覧の皆様も、偽装メモリの被害に遭わないよう十分ご注意ください。
- 信頼のおける店で国内正規品を買う
通販サイトで実店舗がない店の出品やフリマには要注意 - 家電量販店の店頭価格を確認し、相場を知る
- 海外パッケージ品(並行輸入品)には特に注意する
- 裏面を見る、刻印に注意する
- 疑わしいものは使用前にテストする
一昼夜、時計を撮影するなど連続撮影し再生してみる
宮澤 謹徳 オーインクメディアサービス株式会社代表取締役
情報処理安全確保支援士(登録番号:000079号)
データ復旧は1990年代前半のフロッピーディスクの復旧を皮切りに30年以上のキャリアがあります。テクニカルライターとしても活動し、パソコン解説書、ムック、雑誌など多数に寄稿。秋葉原在住。