HDDを直接いじる

[戻る]
筋肉先生 2006/06/18(日) 19:49:05
ゴミ箱のファイルを消しても、実はHDDに情報は残ったままなんですよね?
PCを廃棄処分するときのために、HDDの中身をすべて削除(無意味なデータを上書きした
り?)するプログラムを書いてみようかなと思ったんですけど、そういうプログラムって
普通にC/C++で書けるのですか?
アセンブリとかBIOSがどうのこうの...って話しになるのですか?

シャノン 2006/06/18(日) 19:56:40
DeviceIoControl を使えば、セクタ単位での読み書きが出来ると思う。

筋肉先生 2006/06/18(日) 20:05:41
とりあえず、DeviceIoControlとやらでググってみます。
結果報告なども含めて、後ほどレスします。

# っていうか、こんなプログラム作ってもテストできないなぁ...

情報ありがとうございました。

筋肉先生 2006/06/18(日) 20:21:28
あ、1つ気がかりなことを。

Cで書くということは即ち、OSの支配下で動くプログラムを書くということですよね。
HDDを無効なデータで一杯にするようなプログラムを、OSの起動中に実行して大丈夫なの
かなぁ...。

市販の同じようなソフトウェアってどうやってんだろ。
あぁ、知識なさすぎorz

シャノン 2006/06/18(日) 21:04:37
今動いている OS が入っているシステムドライブは扱えないでしょうね。
いくつかのソフトだと、フロッピーから DOS モードで立ち上げて…とかやってます。

シャノン 2006/06/18(日) 21:05:45
DOS モードの場合は Windows API が使えませんから、アセンブラ(MS-DOS システムコ
ール)でやるか、HDD 内に DOS 用のドライバを入れといて、それ経由で操作するとか、
そういう方法になるかも。

シャノン 2006/06/19(月) 00:15:25
> HDD 内に DOS 用のドライバを入れといて、
FDD 内に、の間違いです。

ITO 2006/06/19(月) 18:15:12
HDDの各メーカで、専用の消去ソフトをフリーでWEBで公開
していますが.......
それでは駄目でしょうか。

筋肉先生 2006/06/20(火) 00:13:31
> HDDの各メーカで、専用の消去ソフトをフリーでWEBで公開していますが.......

うげっ!!
そうなんですか。
いや、でも、データ構造の勉強のためにstd::list使わずに自分で実装するのと同 (ry
(´・ω・`)しょぼーん

後ほど報告のレスをすると言いつつも、なんだかとんでもないことに手を出しているよう
な気がしてきました。
これは少し時間をかけて勉強しなくてはならないようです。

解決してないんで、とりあえずチェックはつけずに放置しときます。

レスしてくださった方々、ありがとうございました。

ITO 2006/06/21(水) 14:57:11
> うげっ!!
> そうなんですか。
HDDメーカは、HDDを使っているといずれ必要となるから用意していると思います。
フリーソフトもあると思います。

> いや、でも、データ構造の勉強のためにstd::list使わずに自分で実装するのと同 (ry
> (´・ω・`)しょぼーん

「データ構造の勉強になるかな?」と思います。
確かに、HDのセクタ構造の勉強になると思います。

>後ほど報告のレスをすると言いつつも、なんだかとんでもないことに手を出しているよ
>う
>な気がしてきました。
>
>これは少し時間をかけて勉強しなくてはならないようです。
そうですね、シャノンさんの意見にもありましたが、
DOSのシステムコール等を勉強する必要があると思います。
アセンブラを使わなくてもint86x等の関数が使えると思いましたが...........

筋肉先生 2006/06/21(水) 20:02:28
> 「データ構造の勉強になるかな?」と思います。

あ、いや、そうではなくて
「HDDなどの勉強のために、メーカーのソフトを利用せずに自分でプログラミングする」
っていうのを
「データ構造の勉強のために、std::listを利用せずに自分で実装する」
って喩えただけですよ。
(^^;

アドバイスいただいたように、DOSのシステムコール等をちょっと勉強してみます。

古いスレッドには追加発言できません。