Як підроблена ємність жорсткого диска?


90

Я читав про чарівні китайські приводи . Як би це було зроблено? У публікації йдеться про "петельний режим", а коментарі пропонують мати інший контролер, щоб лежати в ОС.

Я зайшов і купив один із цих пристроїв, спробував його, і він працював як рекламований (перезапис даних, коли він був повний), хоча коли я його відформатував, він почав показувати його справжню ємність.

Як це досягається?



14
Я думаю, що питання краще назватиме "Як підроблена ємність флеш-пам’яті", оскільки це насправді про підробку обсягу пам’яті на флешці, а не на магнітному жорсткому диску.
Джозеф Граф

Я хочу, щоб один із цих китайських магічних приводів, але я не літаю до Китаю, щоб отримати його!
Моав

+1. Я ніколи не чув про це, перш ніж бачив це питання "ракетою до вершини діаграм" у вікні "Гарячі запитання".
jprete

хе .. спасибі :) Я не очікував такої відповіді, коли мені стало цікаво про "жорсткий диск" з двома гігантськими гайками на випадок
Rohan Monga

Відповіді:


59

FAT32 має головний стіл з вільним місцем. Ви можете вручити цей головний стіл, щоб показати будь-яку кількість вільного місця. Зараз у мене була вільна дискета розміром 3,7 Гб.


4
Так, ви можете підробляти FAT, але є також способи повозитися з мікроконтролером, щоб лежати на ОС. Windows дійсно неодноразово форматує диск, неправильно ідентифікуючи його як набагато більше, ніж є насправді. Зазвичай у них є якийсь вбудований алгоритм для циклу флеш-мікросхеми таким чином, що ОС насправді здатна створити дійсну (шукаючу) головну таблицю.
TheCompWiz

тому що я починаю кидатися навколо і возитися з головним столом та контролером, я очікую більше запитань після цього :)
Rohan Monga

2
Потрібно детальніше розібратися, де знайти головну таблицю або як її відредагувати?
Іво Фліпс

2
Я хотів би переглянути деяку документацію з цього приводу, я спробував тиражувати це програмуванням і не зміг обдурити ОС на розмір розміру. побачити цю тему тут , щоб подивитися , що я намагався stackoverflow.com/questions/7482920 / ...
cromestant

У мене був журнал, що використовує Norton Commander і hexedit, щоб змінити розмір звіту. Шкода, що я втратив журнал.
Barfieldmv

19

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

Ви можете потрапити на цей тип дешевого підробленого flashdrive або навіть жорстких дисків у Китаї весь час, якщо звернетесь до невідомого продавця.


11
Минулого року я купив на Китаї на Ebay нібито 64 Гб пам'яті для пам'яті за 15 фунтів стерлінгів. Я мав би знати, що ємність не буде доступною для ціни. Насправді це був 4Gb з фальшивим ведучим "6", вирізаним на етикетці. Те, як була зашифрована файлова система, означало, що ви не помітите проблеми, поки на пристрій не буде скопійовано більше 4 Гбіт, і в цей момент нові файли тільки почали перезаписувати частини існуючих. Мені ніколи не вдалося переформатувати річ, щоб я міг хоча б використовувати її як 4Gb палицю.
FumbleFingers

7
@FumbleFingers, Так, продавці звичайно вкручують інформацію про чіп, тому ви не можете форматувати безпосередньо, але вам доведеться це зробити: 1. використовуйте програмне забезпечення ChipGenius + інструмент масового виробництва для виправлення інформації про чіп. 2. використовувати інструмент форматування низького рівня для виконання фактичного формату. Ось керівництво: agnipulse.com/2010/04/how-i-fixed-a-fake-64gb-usb-drive
коко

Дякую! Можливо, я все-таки зможу отримати трохи корисної з нього користі (якщо я ще не розчарував її у відро від розчарування).
FumbleFingers

6

Поки я не побачив ваше повідомлення, я був впевнений, що це інший контролер - використовуючи модифікований контролер, ви можете розповісти ОС що завгодно. Але враховуючи, що формат модифікує цю поведінку, це означає, що якась хитрість відбулася і на рівні файлової системи. Це викликає два варіанти:

  • Це модифікація контролера, яка просто не працює після форматування, оскільки це залежить від модифікації файлової системи (що все ще здається мені більш імовірною).

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

EDIT: Наївно вважати, що FAT32 використовується, набагато більш імовірним є сценарій, що використовується інша файлова система, яка ненавмисно дозволяє такі кругові хитрості управління вільним простором (доки ця файлова система також підтримується ОС - це було б бути практично непомітним для користувача). Це робить погляд на такий пристрій набагато цікавішим ...


2
Це річ з файловою системою, я впевнений у цьому. Ці накопичувачі не змінюються фізично.
катастрофа

4
Однак я б хотів придбати таку дрібну річ .. для тестування :)
Greenleader

1
Якщо ви збираєтесь використовувати зусилля або модифіковані контролери, то ви втрачаєте економію цін, купуючи дешеві контролери. Таким чином, мені здається набагато більш імовірним, що це робиться виключно на рівні файлової системи - необмежене записування з dd - це швидке, дешеве і просте порівняння із заміною / зміною обладнання.
kaerast

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
    

5

Досить просто,

Контролер флеш-мікросхеми містить деякі налаштування. Ідентифікатор продукту, ідентифікатор постачальника, кількість та розмір флешмотів.

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

Оскільки кількість адресних ліній не змінилася, чіп завжди буде записаний. Наприклад, спочатку буде записано 128 Мб, потім обраний наступний чіп, потім ще 128.

Оскільки є лише одна мікросхема, лінія вибору не підключена, а дані другого флешчіпа перезаписують дані перших чіпів.

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


3
Проблема тут полягає в тому, що якщо це зроблено таким чином, в апаратних засобах новіші дані також перезаписують таблицю розподілу файлів FAT32 та кореневий каталог біля початку диска, таким чином роблячи диск непридатним до його переформатування. Той факт, що цього не відбувається, говорить про те, що його робота працює над файловою системою.
Мокубай

Так, геніальний, як би це було, це потрапило б дуже швидко.
Рохан Монга

1

Для цього існує два способи:

  1. Розділ: існує кілька інструментів для зміни та створення розділу вручну. Наприклад, можна вибрати більше циліндрів, які є реальні в наявності. Банально це зробити. Вих. розділення магія, і я думаю, навіть fdisk може це зробити

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

Наприклад, звичайний трюк - використовувати прошивку жорсткого диска більшої ємності в пристрої меншої ємності та "збільшити" простір.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.