2

重複の可能性:
C#-ファイルを完全に削除する

私はデータ回復ソフトウェアがどのように機能しているかについていくつかの記事を読みました。彼らは、削除されたファイルはまだHDDにあるが、OSには見えないと言った。ファイルは同じ場所(メモリ)にありますが、ポインタが異なるため、OSはそれらを認識できません。

自分で定義したファイルを完全に消去するのに役立つプログラムをC#またはC++で作成したいと思います。remove()(C ++)を使用してファイルを完全に削除するだけで十分ですか?ドキュメントをどこから始めればよいですか、または何をすべきですか?

4

4 に答える 4

3

ファイル全体を多くの0のファイルで上書きするファイルストリームを作成してから、そのファイルを削除してみてください。次に、ファイル回復プログラムは多くのゼロを回復します。

于 2012-05-05T21:50:35.507 に答える
2

ファイルを削除すると、ファイルシステムエントリ(つまり、ファイルのデータがディスク上のどこにあるかをファイルシステムに通知するレコード)が削除されます。それが指し示したデータはまだディスクプラッター上にあります(ただし、最終的には上書きされる可能性があります)。

ディスクプラッタからデータを削除する場合は、ファイルレコードを削除する前に、データを乱数で上書きしてください。

これは、ディレクトリからアドレスを削除するようなものです。あなたの家はまだ存在し、人々はもはやその場所を調べることができません。彼らが十分に献身的であるならば、彼らはあなたの家を見つけることができます。どうしても見つけられないようにする必要がある場合は、ブルドーザーで水平にします。

于 2012-05-05T21:50:06.253 に答える
2

簡単に言うと、ファイルが削除されると、データの最初のブロックへの「ポインタ」が削除されます。しかし、データはまだディスク上にあります。その結果、ディスクに書き込みが行われると、データが上書きされる可能性があります。

これは、「不安な」プログラムが何をするかを非常に簡単に説明しています。彼らはそこにあるデータをディスクで検索しますが、ファイルシステムが持っているデータ構造に「ポインタ」はありません。

通常、必要なのはデータのブロックが上書きされることです。

これは、データを復元できないようにするために、何度も実行できます。

すでにそれを実行しているプログラムはたくさんありますが、私はC#で実行できるとは思っていません(アンマネージコードに頼ることなく)。

詳細については、C#-ファイルの完全な削除を参照してください。

于 2012-05-05T21:54:19.563 に答える
1

最新のオペレーティングシステムがファイルを作成するときに実際のセクターを割り当てる不透明な方法と、ソリッドステートハードドライブが論理セクターを透過的に再マッピングして、オペレーティングシステムがページファイルをスラッシングするときに物理セクターへの負荷を分散する、データを保証する唯一の確実な方法ハードドライブに穴を開けてから燃やすことは決して回復できません。それか、関連するすべてのファイルに暗号化キーを使用し、ハードドライブに保存しないでください(つまり、ユーザーの頭の中に保存します)。また、使用直後に暗号化で使用されるすべてのRAMをゼロにして、ディスクにページアウトされないようにする必要があることにも注意してください。

于 2012-05-05T21:58:50.417 に答える