• 締切済み

削除したファイルの復旧、および完全削除のアルゴリズム

 ウィンドウズマシンにおいて、通常、ゴミ箱からファイルを削除しただけでは、専用の復旧ソフトウェアで閲覧が可能となります。  フリーソフトの中には、このゴミ箱から消去したファイルを再び探し出したり、逆にこれらのファイルを復旧ソフトですら探せ出せないようにするものがあります。そこで気になることがあるのですが、こういった処理はC言語に用意されている一般のライブラリ(stdio.hなど)だけで実装できるものなのでしょうか。それともアセンブラ等を使って、ハードウェアを直接制御しているのでしょうか。  もしご存じであれば、こういった処理のプログラミング方法、もしくはその類のソースコードの配布先を教えていただければ幸いです。

みんなの回答

回答No.2

 HDのデータ構造において、ファイルシステムのFAT(ファイル・アロケーション・テーブル)の書き込みセクタの位置や仕様が分かり、C言語の命令でセクタ単位で16進数データの書き込みができれば可能だと思います。 (実際MS-DOSの時代には、FDに対してFATの操作は行なわれていましたし、フリー?のツールも出回っていました)  FATでインデックス部とインデックス部が示すデータ格納先のセクタをロックすれば、見かけ上の削除と復旧が制御可能です。  また、FATのインデックス部とインデックス部が示すデータ格納先のセクタを書き換えてしまえば、復旧できなくなります。

  • c80s3xxx
  • ベストアンサー率49% (1634/3294)
回答No.1

基本的に,消去というのは FAT の最初のところを書き換えてるだけなのです.ですから,そこをそれらしく推定したデータに書き戻せば復元できるわけです. ディスクにどのようにデータが書き込まれているのかを理解すれば,標準てきなライブラリで操作できます.