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


90

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

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

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



14
「フラッシュメモリの容量はどのように偽造されているか」というタイトルの質問の方が良いと思います。実際には、磁気ハードディスクではなく、フラッシュドライブ上のストレージの量を偽造するためです。
ジョセフアール

私はそれらの中国の魔法のドライブの1つが欲しいのですが、私は1つを得るために中国に飛んでいない!、素晴らしいオタクギャグの贈り物をするでしょう。
モアブ

+1。この質問を「ホット質問」ビューで「チャートのトップへ急上昇」する前に聞いたことはありませんでした。
-jprete

私は場合は2巨大なナット・ボルトで「ハードディスク」好奇心得たとき。..おかげであわや:)私は応答のこの種のを期待していなかった
ロハンモンガ

回答:


59

FAT32には、空き領域を持つマスターテーブルがあります。そのマスターテーブルを16進編集して、任意の量の空き領域を表示できます。私は何年も前から3.7 GBのサイズのフロッピーディスクを持っていました。


4
はい、FATを改ざんすることができますが、マイクロコントローラーをいじってOSに嘘をつく方法もあります。実際、Windowsはディスクを繰り返しフォーマットし、実際よりもはるかに大きいと誤って認識します。通常、OSが実際に有効な(見た目)マスターテーブルを作成できるように、フラッシュチップをループするための組み込みアルゴリズムがあります。
TheCompWiz

マスターテーブルとコントローラーをいじり始め、混乱するようになると、これに続く質問が増えることを期待しています:)
Rohan Monga

2
マスターテーブルの場所と編集方法について詳しく説明しますか?
イボフリップ

2
私はこれに関するいくつかのドキュメントを見たいと思っています、私はこれをプログラミングで複製しようとしましたが、OSを欺いてサイズを把握することができませんでした。私が試したものを見るためにここにこのスレッドを参照してくださいstackoverflow.com/questions/7482920/...
cromestant

報告されたパーティションサイズを変更するためにノートンコマンダーとhexeditを使用する雑誌がありました。残念ながら、私は雑誌を失いました。
Barfieldmv

19

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

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


11
昨年、私はEbayで中国から64GBのメモリスティックを15ポンドで購入しました。私は容量が価格で利用できないことを知っている必要がありました。実際、4Gbで、ラベルに「6」が先行する偽物がエッチングされています。ファイルシステムがスクランブルされた方法は、4Gb 以上がデバイスにコピーされるまで問題に気付かないことを意味し、その時点で新しいファイルは既存のファイルの一部を上書きし始めました。少なくとも4Gbスティックとして使用できるように、ものを再フォーマットすることはできませんでした。
FumbleFingers

7
@FumbleFingers、はい、売り手はチップ情報を台無しにするのが一般的ですので、直接フォーマットすることはできませんが、これを行う必要があります。1. ChipGeniusソフトウェア+大量生産ツールを使用してチップ情報を修正します。2.低レベルのフォーマットツールを使用して、実際のフォーマットを実行します。ここにガイドがあります:agnipulse.com/2010/04/how-i-fixed-a-fake-64gb-usb-drive
KoKo

ありがとう!たぶん、私はそれから少しの価値を得ることができます(欲求不満でビンにまだチャックしていない場合)。
-FumbleFingers

6

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

  • これはコントローラの修正であり、ファイルシステムの修正に依存しているため、フォーマット後には機能しません(私にはまだ可能性が高いようです)。

  • ハードウェアを変更せずにこれを行う別の方法があります。たとえば、フリーブロックのリンクリストを循環するように変更することです(これが可能かどうかを判断するためのFAT32の詳細について十分な知識がありません。それ以外の場合は最初に...)。

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


2
それはファイルシステムのことです、私はそれを確信しています。これらのドライブは物理的に変更されていません。
古典的な

4
しかし、私はそのような小さなものを購入します。テスト目的のために:)
グリーンリーダー

1
カスタムまたは変更されたコントローラーを使用しようとすると、安価なコントローラーを大量に購入することで節約できる価格を失うことになります。したがって、純粋にファイルシステムレベルで行われる可能性がはるかに高いようです-ddを使用した生の書き込みは、ハードウェアの交換/変更に比べて迅速、安価で簡単です。
-kaerast

6

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

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

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

    ls -lh temp_file
    
  3. DoKを接続し、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
    

5

とてもシンプルで、

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

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

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

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

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


3
ここでの問題は、ハードウェアでこの方法で行うと、新しいデータがドライブの先頭近くのFAT32ファイル割り当てテーブルとルートディレクトリを上書きするため、ドライブが再フォーマットされるまで使用できなくなることです。これが起こらないという事実は、それが機能するファイルシステムのハックであることを示唆しています。
木梅

うん、それはそのまま独創的で、これはすぐに捕まるだろう。
ローハンモンガ

1

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

  1. パーティション:パーティションを手動で変更および作成するためのツールがいくつかあります。たとえば、実際よりも多くのシリンダーを選択できます。それを行うのは簡単です。例 パーティションマジックと私はfdiskでもそれができると思う

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.