5

これは奇妙な質問ですが、これで終わりです。外付けハード ドライブを 1 でフラッシュし、次に 0 でフラッシュして完全に消去し、販売できるようにするプログラムを作成したいと考えています。では、なぜ DBAN を使用するだけでなく、独自のソフトウェアを作成する必要があるのでしょうか?

  1. 私の理解では、DBAN は検出したすべてのハード ドライブを削除します。外側だけをきれいにしたい。

  2. DBAN が 7 回点滅します。私の外部には違法な素材やクレジットカード情報が含まれていないため、これは私の目的には少し過剰だと感じています.

  3. 正直なところ、ファームウェアがどのように機能するかについては、実際にはちょっと興味があります。

Google はあまり登場しませんでした (愚かな Adob​​e Flash)。私はこれを C/C++ で行うことを好みますが、アセンブリを含む他の言語でも動作します。

4

3 に答える 3

6

まあ、Cでそれを行うのはかなり簡単です。まず、適切なデバイス ファイルを書き込みモードで開きます。

int fd = open("/dev/sdc", O_WRONLY);

write()そして、それ以上書き込めなくなるまで、512 バイトのチャンクを単純に追加します。新しいディスクは代わりに 4096 バイト セクターを使用しますが、OS は通常、ディスクが 512 バイト セクターを持っているかのように扱うため、512 が最も安全な値です。これを正確に行う C プログラムを次に示します。

(注:正しい /dev デバイス ファイルを選択するよう十分注意してください。そうしないと、間違ったディスクを一掃してしまいます!)

#include <stdio.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <unistd.h>
#include <stdlib.h>

int main(void)
{
    int fd = open("/dev/sdd", O_WRONLY);
    if (fd < 0) {
        fprintf(stderr, "Error opening device file.\n");
        return EXIT_FAILURE;
    }

    // Write 0's all over the disk, in chunks of 512 bytes.
    char* zeros = calloc(1, 512);
    ssize_t written, total = 0;
    do {
        total += written = write(fd, zeros, 512);
        printf("\rBytes written: %ld", total);
    } while (written == 512);
    printf("\nDone!\n");

    close(fd);
    free(zeros);
    return 0;
}

を削除するとスピードアップする可能性がありますがprintf()、進行状況を確認するのはちょっとクールです. おそらく、最後に追加のエラー チェックを行う必要があります (writtenが -1 の場合、エラーが発生したため、チェックする必要がありますerrno)。

キャッシングが原因で、「完了」と出力された後、プログラムが最後にしばらくハングしているように見える場合があることに注意してください。ハングしているわけではなく、書き込み操作のキャッシュがすべて完了するまでブロックしているだけです。

于 2012-11-15T03:28:07.317 に答える
2

私の理解では、DBANは検出したすべてのハードドライブを削除します。外面を掃除したいだけです。

そうではありません

DBANは7回点滅します。私の外部には違法な資料やクレジットカード情報が含まれていないため、これは私の目的には少し過剰だと思います。

でも朝起きたら終わったよね?また、明らかに構成可能です。

正直なところ、私は実際にファームウェアがどのように機能するかについて少し興味があります。

IMO、これは開始するのに最適な場所ではありません。

于 2012-11-15T03:05:14.893 に答える
1

注として。あなたの質問は、データの消去、別名シュレッダーなどに関するもののようです。

HDDをフラッシュすると、内部ソフトウェアが更新されます。のように:HDDには独自のファームウェアがあります。Linuxでは、次のことができます。

$ sudo hdparm -I /dev/sda

次に、次のような情報を取得します。

ATA device, with non-removable media
    Model Number:       ST31000524AS                            
    Serial Number:      XXXXXXX
    Firmware Revision:  JC4B    
    Transport:          Serial, SATA Rev 3.0

..。

これが逆の場合は、フォレンジックを確認/検索できます。つまり、FAU、オープンソースのデジタルフォレンジックなどで詳細情報を入手できます。

ワイピングについてもう少し

于 2012-11-15T03:07:05.370 に答える