@port139 Blog

基本的にはデジタル・フォレンジックの技術について取り扱っていますが、記載内容には高確率で誤りが含まれる可能性があります。

exFATの削除エントリ

exFATではファイルが削除されると、ディレクトリエントリの先頭にあるタイプを示すバイトの最上位ビットがゼロクリアされるということです。ファイルが削除されたディレクトリエントリでは下記のようにディレクトリエントリの先頭バイトの最上位ビットがゼロクリアされていることが確認できます。
Jellyfish.jpgが削除された後のディレクトリエントリ。

05 02 5C 7B 20 00 00 00 8B 88 14 3B 8D 6E EE 3A
8B 88 14 3B B3 00 A4 A4 A4 00 00 00 00 00 00 00
40 03 00 0D 9D 6C 00 00 16 D6 0B 00 00 00 00 00
00 00 00 00 4D 00 00 00 16 D6 0B 00 00 00 00 00
41 00 4A 00 65 00 6C 00 6C 00 79 00 66 00 69 00
73 00 68 00 2E 00 6A 00 70 00 67 00 00 00 00 00

ということで、ホワイトボードに2進数を書いて確認していたりしましたが、まず 0x85 の場合には 8 を2進数で表現すると「 1 0 0 0 」なので、最上位ビットがゼロになると「 0 0 0 0 」になって、0x05 となります。同じように、0xC0 の C は2進数で「 1 1 0 0 」なので、「 0 1 0 0 」となって 0x40 になると。
タイプの値だけが変化するので、ファイル名の先頭が E5 で埋められるということもないので、削除ファイルのリカバリは、ファイル名はそのまま 0x41 レコードから戻して、0x40 レコードにある開始クラスタとファイルサイズなどからデータを戻すことで、従来の FAT でのファイルリカバリと同じ流れになりそうです。