88

Я читал о волшебных китайских дисках. Как это будет сделано? В посте рассказывается о «зацикленном режиме», а в комментариях предлагается использовать другой контроллер для лжи ОС.

Я пошел и купил одно из этих устройств, попробовал его, и оно работало как реклама (перезаписывая данные, когда оно было заполнено), хотя когда я отформатировал его, оно начало показывать его «истинную» емкость.

Как это достигается?

6 ответов6

59

FAT32 имеет главную таблицу со свободным пространством. Вы можете закодировать эту основную таблицу, чтобы показать любое количество свободного места. У меня была дискета размером 3,7 ГБ целую вечность.

19

Аппаратное обеспечение не модифицируется - таблица файлов просто модифицируется, чтобы обмануть ОС. Во время форматирования файловая таблица стирается и, таким образом, восстанавливается подлинное считывание емкости.

Вы можете быть пойманы этим типом дешевого поддельного флэш-накопителя или даже жестких дисков в Китае все время, если вы идете к неуважаемому продавцу.

6

Вот как вы создаете диск размером 1 000 000 000 000 байт (1 ТБ) на ключе (в Linux):

  1. Создать поддельный отформатированный диск объемом 1 ТБ:

    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

Пока я не увидел ваше сообщение, я был уверен, что это был другой контроллер - используя модифицированный контроллер, вы можете сказать что угодно ОС. Но, учитывая, что формат изменяет это поведение, это означает, что на уровне файловой системы также произошел некоторый обман. Это поднимает два варианта:

  • Это модификация контроллера, которая просто не работает после форматирования, потому что это зависит от модификации файловой системы (которая все еще кажется мне более вероятной).

  • Есть другой способ сделать это без модификации оборудования, например, путем изменения связанного списка свободных блоков, чтобы он был циклическим (я не достаточно знаком со спецификой FAT32, чтобы решить, возможно ли это - может проверить через несколько дней, если никто не будет остальное делает первым ...).

РЕДАКТИРОВАТЬ: Наивно предполагать, что используется FAT32, гораздо более вероятный сценарий состоит в том, что используется другая файловая система, которая непреднамеренно допускает такой круговой обман управления свободным пространством (если эта файловая система также поддерживается ОС - это будет быть практически невидимым для пользователя). Это делает просмотр такого устройства гораздо интереснее ...

5

Достаточно просто,

Контроллер флеш-чипа содержит некоторые настройки. Идентификатор продукта, идентификатор поставщика, а также количество и размер флеш-чипов.

Если взять старое устройство с небольшим чипом, перезаписать прошивку с неправильным количеством флеш-чипов, общая емкость накопителя будет больше, чем количество установленных флеш-накопителей.

Поскольку количество строк адреса не изменилось, чип всегда будет записан. Например, будут записаны первые 128 МБ, затем будет выбрана следующая микросхема, а затем будут записаны еще 128.

Поскольку имеется только одна микросхема, строка выбора не подключена, и данные второго флеш-чипа перезаписывают данные первой фишки.

Поскольку контроллер сообщает размер всех чипов, включая неподключенные к ОС, ОС с радостью отформатирует его неверный размер.

1

Для этого существует два метода:

  1. Раздел: существует несколько инструментов для изменения и создания раздела вручную. Например, можно выбрать больше цилиндров, чем реально доступно. Это тривиально, чтобы сделать это. Ex. раздел магии, и я думаю, что даже fdisk может сделать это

  2. Прошивка устройства: Другой метод заключается в изменении прошивки устройства. Большинство устройств (но не все) имеют свою информацию (Plug & Play и другую информацию), содержащуюся в прошивке.

Например, обычная уловка - использовать встроенное ПО жесткого диска большей емкости в устройстве меньшей емкости и "увеличить" пространство.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .