中国の魔法のドライブについて読んでいました。これはどのように行われますか?この投稿では「ループモード」について説明しており、コメントはOSに横たわる別のコントローラーを持つことを示唆しています。
行ってこれらのデバイスの1つを購入し、試してみましたが、広告として機能しました(満杯になるとデータを上書きしました)が、フォーマットすると「真の」容量が表示され始めました。
これはどのように達成されますか?
中国の魔法のドライブについて読んでいました。これはどのように行われますか?この投稿では「ループモード」について説明しており、コメントはOSに横たわる別のコントローラーを持つことを示唆しています。
行ってこれらのデバイスの1つを購入し、試してみましたが、広告として機能しました(満杯になるとデータを上書きしました)が、フォーマットすると「真の」容量が表示され始めました。
これはどのように達成されますか?
回答:
FAT32には、空き領域を持つマスターテーブルがあります。そのマスターテーブルを16進編集して、任意の量の空き領域を表示できます。私は何年も前から3.7 GBのサイズのフロッピーディスクを持っていました。
ハードウェアは変更されません-OSをだますためにファイルテーブルが変更されます。フォーマット中にファイルテーブルが消去されるため、真の容量の読み取り値が復元されます。
あなたが評判の悪い売り手に行くならば、あなたは中国のこれらのタイプの安い偽のフラッシュドライブまたはハードドライブでさえ常に捕まることができます。
あなたのメッセージを見るまで、それは別のコントローラーであると確信していました-変更されたコントローラーを使用すると、OSに好きなことを伝えることができます。ただし、この形式がこの動作を変更することを考えると、ファイルシステムレベルでも何らかのトリックが行われたことを意味します。これにより、次の2つのオプションが発生します。
これはコントローラの修正であり、ファイルシステムの修正に依存しているため、フォーマット後には機能しません(私にはまだ可能性が高いようです)。
ハードウェアを変更せずにこれを行う別の方法があります。たとえば、フリーブロックのリンクリストを循環するように変更することです(これが可能かどうかを判断するためのFAT32の詳細について十分な知識がありません。それ以外の場合は最初に...)。
編集:FAT32が使用されていると仮定するのは単純です、はるかに可能性の高いシナリオは、そのような循環空き領域管理のトリックを誤って許可する別のファイルシステムが使用されることです(そのファイルシステムがOSによってサポートされている限り-ユーザーには実質的に見えないようにします)。これにより、そのようなデバイスを見ることがはるかに興味深いものになります...
キーに1,000,000,000,000バイト(1 TB)のディスクを作成する方法は次のとおりです(Linuxを使用)。
偽のフォーマット済み1 TBディスクを作成します。
mkdosfs -C temp_file 1000000000
それが本当に起こったことを確認してください
ls -lh temp_file
DoKを接続し、DoKのマウント方法を確認します。
mount
次のようなデバイス名を見つけ/dev/sdb1
ます(ここで間違えた場合は、システムに接続されている他のディスクが破損する可能性があるため、注意してください!)
アンマウントします:
sudo umount /dev/sdb1
FATテーブルのサイズを確認します。
ls -s temp_file
(最初の数値はキロバイト単位のサイズです)
DoKにコピーオーバー
echo "head -c [size_from_above]K temp_file > /dev/sdb1" | sudo sh
あなたの友人をフリークアウト!あなたはこのように遊んでローカルにマウントすることができます:
mkdir test
sudo mount temp_file test -o loop
とてもシンプルで、
フラッシュチップコントローラーにはいくつかの設定が含まれています。製品ID、ベンダーID、フラッシュチップの数とサイズ。
小さいチップの古いデバイスを使用して、間違った数のフラッシュチップでファームウェアを上書きすると、合計ドライブ容量はインストールされたフラッシュの数より大きくなります。
アドレス行の量は変更されていないため、チップは常に書き込まれます。たとえば、最初の128 MBが書き込まれ、次に次のチップが選択され、次に別の128 MBが書き込まれます。
チップは1つしかないため、選択ラインは接続されず、2番目のフラッシュチップデータが最初のチップデータを上書きします。
コントローラは、OSに接続されていないものも含めて、すべてのチップのサイズを報告するため、OSはそれを正しく間違ったサイズにフォーマットします。
これを行うには、2つの方法があります。
パーティション:パーティションを手動で変更および作成するためのツールがいくつかあります。たとえば、実際よりも多くのシリンダーを選択できます。それを行うのは簡単です。例 パーティションマジックと私はfdiskでもそれができると思う
デバイスファームウェア:もう1つの方法は、デバイスのファームウェアを変更することです。ほとんどのデバイス(すべてではない)には、ファームウェアに情報(プラグアンドプレイおよびその他の情報)が含まれています。
たとえば、通常のトリックは、容量の少ないデバイスで容量の大きいハードディスクのファームウェアを使用し、スペースを「増やす」ことです。