web-dev-qa-db-ja.com

ハードディスクの容量はどのように偽造されていますか?

私は 魔法の中国のドライブ について読んでいました。これはどのように行われますか?投稿は「ループモード」について話し、コメントはOSに嘘をつく別のコントローラーを持っていることを示唆しています。

私はこれらのデバイスの1つを購入して購入し、試してみたところ、広告どおりに機能しました(データがいっぱいになるとデータが上書きされます)が、フォーマットすると「真の」容量が表示され始めました。

これはどのように達成されますか?

90
Rohan Monga

FAT32 には空き領域のあるマスターテーブルがあります。そのマスターテーブルをhexeditして、空き容量を表示できます。私は3.7 GBのフロッピーディスクをすべての年齢向けに持っていました。

59
Barfieldmv

ハードウェアは変更されません。ファイルテーブルは、OSをだますために単に変更されます。フォーマット中にファイルテーブルが消去されるため、本物の容量の読み取り値が復元されます。

あなたが評判の悪い売り手に行くならば、あなたはいつも中国でこれらのタイプの安い偽のフラッシュドライブあるいはハードドライブにさえ捕まることができます。

19
KoKo

キーに1,000,000,000,000バイト(1 TB)のディスクを作成する方法は次のとおりです(Linuxを使用):

  1. 偽のフォーマット済み1 TBディスクを作成します。

    mkdosfs -C  temp_file 1000000000
    
  2. それが本当に起こったことを確認してください

    ls -lh temp_file
    
  3. DoKを接続し、それがどのようにマウントされたかを確認します。

    mount
    
  4. /dev/sdb1のようなデバイス名を見つけます(ここで間違えると、システムに接続されている他のディスクが台無しになる可能性があるので注意してください)。

  5. アンマウントします。

    Sudo umount /dev/sdb1
    
  6. FATテーブルのサイズを確認します。

    ls -s temp_file
    

(最初の数字はキロバイト単位のサイズです)

  1. DoKにコピー

    echo "head -c [size_from_above]K temp_file > /dev/sdb1" | Sudo sh
    
  2. 友達をフリークアウトしましょう!ローカルにマウントして、次のように遊んでみましょう:

    mkdir test
    Sudo mount temp_file test -o loop
    
6
Boris

あなたのメッセージを見るまでは、それが別のコントローラーであると確信していました-変更されたコントローラーを使用すると、OSに好きなことを伝えることができます。ただし、この形式がこの動作を変更することを考えると、ファイルシステムレベルでも何らかの策略が行われたことになります。これには2つのオプションがあります。

  • これはコントローラーの変更であり、ファイルシステムの変更に依存しているため、フォーマット後は機能しません(これは、おそらく私にはありそうです)。

  • ハードウェアを変更せずにこれを行う別の方法があります。フリーブロックのリンクリストを循環するように変更します(FAT32の詳細に精通していないので、これが可能かどうかを判断できません。他に誰も最初に確認しない場合、数日でチェックされる可能性があります...)。

編集:FAT32が使用されていると仮定するのは簡単です、より可能性の高いシナリオは、そのファイルシステムがOSによってサポートされている限り、そのような循環的な空きスペース管理のトリックを誤って許可する別のファイルシステムが使用されることです-それはユーザーには実質的に見えない)。これは、そのようなデバイスを見ることがはるかに興味深いものにします...

6
Ofir

かなりシンプルで、

フラッシュチップコントローラには、いくつかの設定が含まれています。製品ID、ベンダーID、およびフラッシュチップの数とサイズ。

小さいチップの古いデバイスを使用して、間違った数のフラッシュチップでファームウェアを上書きすると、総ドライブ容量はインストールされているフラッシュの数より大きくなります。

アドレスラインの量は変更されていないため、チップは常に書き込まれます。たとえば、最初に128 MBが書き込まれ、次に次のチップが選択され、次に別の128 MBが書き込まれます。

チップが1つしかないため、選択ラインは接続されず、2番目のフラッシュチップデータが最初のチップデータを上書きします。

コントローラーは、OSに接続されていないものも含めて、すべてのチップのサイズを報告するため、OSは誤って誤ったサイズにフォーマットします。

5
Progger

これを行うには、2つの方法があります。

  1. パーティション:パーティションを手動で変更および作成するためのいくつかのツールが存在します。たとえば、実際に利用可能なより多くのシリンダーを選択することが可能です。それを行うのは簡単です。例パーティションの魔法とfdiskでもそれができると思う

  2. デバイスのファームウェア:他の方法は、デバイスのファームウェアを変更することです。ほとんどのデバイス(すべてではない)では、ファームウェアに情報(プラグアンドプレイおよびその他の情報)が含まれています。

たとえば、通常のトリックは、容量の少ないデバイスで容量の大きいハードディスクのファームウェアを使用し、スペースを「増やす」ことです。

1
magallanes