HDDを直接いじる – プログラミング – Home

通知
すべてクリア

HDDを直接いじる


筋肉先生
 筋肉先生
(@筋肉先生)
ゲスト
結合: 19年前
投稿: 7
Topic starter  

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


引用解決済
トピックタグ
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

DeviceIoControl を使えば、セクタ単位での読み書きが出来ると思う。


返信引用
筋肉先生
 筋肉先生
(@筋肉先生)
ゲスト
結合: 19年前
投稿: 7
Topic starter  

とりあえず、DeviceIoControlとやらでググってみます。
結果報告なども含めて、後ほどレスします。

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

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


返信引用
筋肉先生
 筋肉先生
(@筋肉先生)
ゲスト
結合: 19年前
投稿: 7
Topic starter  

あ、1つ気がかりなことを。

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

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


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

今動いている OS が入っているシステムドライブは扱えないでしょうね。
いくつかのソフトだと、フロッピーから DOS モードで立ち上げて…とかやってます。


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

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


返信引用
aetos
(@aetos)
Noble Member
結合: 5年前
投稿: 1480
 

> HDD 内に DOS 用のドライバを入れといて、
FDD 内に、の間違いです。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

HDDの各メーカで、専用の消去ソフトをフリーでWEBで公開
していますが.......
それでは駄目でしょうか。


返信引用
筋肉先生
 筋肉先生
(@筋肉先生)
ゲスト
結合: 19年前
投稿: 7
Topic starter  

> HDDの各メーカで、専用の消去ソフトをフリーでWEBで公開していますが.......

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

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

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

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


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

> うげっ!!
> そうなんですか。
HDDメーカは、HDDを使っているといずれ必要となるから用意していると思います。
フリーソフトもあると思います。

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

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

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


返信引用
筋肉先生
 筋肉先生
(@筋肉先生)
ゲスト
結合: 19年前
投稿: 7
Topic starter  

> 「データ構造の勉強になるかな?」と思います。

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

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました