写真データの復活作業、その後。

デジカメで撮影した写真データの復活作業、その後。
まずは、SDカードからセクター単位でデータを抜き出すツールの準備。
いろいろとネットで検索して、最初に見つけたのが、「Sector_viewer」というツール。
これは、ドライブを指定して、オフセットセクターと読み出しセクター数を入力すると、そのダンプイメージがバイナリ出力されるというもの。
これは仕様的には文句なし。
で、早速インストールして実行してみると、オフセットがまったく効かない。
つまり、いつも最初のセクターからしか読み込めないという状況。
使い方が悪いのか、環境が悪いのかわかりませんが、仕様どおりに動いてくれません。
他に探してみるものの、なかなかぴったりのものがありません。
諦めかけていたところに見つけたのが、「ディスクダンプエディタ」というツール。
シェアウェアですが、30日の試用期間があるので、とりあえず使ってみます。
読み出すセクターを指示すると、ちゃんとそこのデータを読み込んでくれます。
しかし、表示は1セクターのみ。読み込みも1セクター単位。
これでは、写真のデータを丸ごと抜き出せません。
だめだなぁと思っていたのですが、バイナリデータに保存はできるのかなと思って、「ファイル/名前を付けて保存」を行うと、なんとそこで、開始セクターと終了セクターを指示できるではありませんか。
やったぁーと思いましたね。
早速、SDカードの内容をまとまった単位でバイナリーファイルに落とします。
私が使っているSDカードは512MB。
1セクター=512バイト(ちなみに、1クラスター=32セクター)ですので、50000セクター(約25MB)ごとに20ファイルに落とすことにしました。
SDカードのバイナリデータを無事ファイル化できましたので、次はこれをJPEGデータに分割していくためのツールを探します。
それで見つけたのが、「JpegAnalyzer」というフリーソフト。
このツールは優れものです。
セグメント単位にコピーや削除が簡単にできますので、JPEGファイル形式を知っていると、かなり自在に断片化しているデータまで含めてJPEGファイルを復元できます。
ここからはもう力勝負です。
50000セクター単位のバイナリデータを「JpegAnalyzer」に放り込んで解析を行うと、マーカを読み取ってセグメント単位のわかりやすい表示をしてくれます。
もちろん、横には16進のダンプデータもリンクして表示されます。
バイト単位でマーカの挿入・削除もできますので、ダンプを見ながら自在にマーカを入れてブロックわけして削除したりすることも可能です。
根気よく順番にひとつのJPEGファイルとして成り立つようにデータを抜き出して、ひとつひとつJPEGファイル化していきます。
断片データも適当なSOIセグメントなどを付けてファイル化していきます。
この作業を続けていくと、SDカードの中のデータがセクタ順にみごとに甦っていきます。
もちろん、ダンプから復活していますので、削除されているかどうかなど関係なく、上書きされていないデータはすべて復活します。
根気よく作業を続けて、ようやく問題の表示できない画像のところに来ました。
期待としては、見事に見えていなかった写真が復活!と思っていたのですが、結論はダメでした。
問題の写真データのところにくると、ダンプ情報が一変するのです。
そのあたりは、SDカードを買って初めて使うエリアだったので、データが書かれていないところは「FF」になっていたのに、問題の部分が過ぎたあたりから、きれいな「FF」ではなく、明らかなゴミデータが見えるのです。
しかも、それ以降復活できる画像は、最初に復活した画像と同じものばかりになります。
つまり、あるところから、もとに戻っているような感じなのです。
SDカードの実メモリ上がこんな状態とはとても思えません。
こうなると、データを読み込むときにSDカードのメモリ上の内容をある時点から正しく読み取っていないということになり、その一番の疑いはカードリーダということになります。
だんだんと状況が見えてきました。
写真データ復活まで、あともうひと頑張りのような気がします。

コメント