Comment la capacité d'un disque dur est-elle falsifiée?


90

Je lisais sur les lecteurs chinois magiques . Comment cela serait-il fait? La publication parle d'un «mode en boucle» et les commentaires suggèrent de disposer d'un contrôleur différent pour mentir au système d'exploitation.

Je suis allé acheter un de ces appareils, je l’ai essayé et cela a fonctionné comme prévu (écrasement des données quand il était plein), bien que lorsque je l’ai formaté, il ait commencé à montrer sa «vraie» capacité.

Comment cela est-il réalisé?



14
Je pense que la question serait mieux intitulée "Comment la capacité de la mémoire flash est-elle falsifiée" puisqu'il s'agit en réalité de simuler la quantité de mémoire stockée sur un lecteur flash, pas un disque dur magnétique.
Joseph Earl

Je veux un de ces disques magiques chinois, mais je ne vais pas en Chine pour en avoir un!, Ce serait un superbe cadeau de geek gag.
Moab

+1 Je n'avais jamais entendu parler de cela avant de voir cette question "monter en flèche dans les charts" dans la vue Hot Questions.
jprete

heh .. merci :) Je ne m'attendais pas à ce genre de réponse quand je suis devenu curieux d'un "disque dur" avec 2 écrous géants dans l'affaire
Rohan Monga

Réponses:


59

FAT32 a une table principale avec un espace libre. Vous pouvez hexedit cette table principale pour afficher toute quantité d’espace libre. Je possède une disquette de 3,7 Go depuis longtemps.


4
Oui, vous pouvez modifier le FAT, mais il existe également des moyens de bricoler avec le micro-contrôleur pour mentir au système d'exploitation. Windows formera en effet de manière répétée le disque en l'identifiant incorrectement comme étant beaucoup plus volumineux qu'il ne l'est en réalité. Habituellement, ils ont une sorte d'algorithme intégré pour boucler la puce flash de telle sorte que le système d'exploitation puisse créer une table maîtresse valide.
TheCompWiz

Alors que je commence à fouiller et à bousiller avec la table principale et le contrôleur, je m'attends à plus de questions à la suite :)
Rohan Monga

2
Vous souhaitez préciser où trouver la table principale ou comment l’éditer?
Ivo Flipse

2
J'adorerais voir de la documentation à ce sujet. J'ai essayé de reproduire cela avec la programmation et je n'ai pas réussi à tromper le système d'exploitation. voir ce fil ici pour voir ce que j'ai essayé stackoverflow.com/questions/7482920/…
cromestant

Un magazine utilisant Norton Commander et hexedit a été utilisé pour modifier la taille de la partition indiquée. Dommage que j'ai perdu le magazine.
Barfieldmv

19

Le matériel n'est pas modifié - la table de fichiers est simplement modifiée pour tromper le système d'exploitation. Pendant un format, la table de fichiers est effacée et la lecture de la capacité réelle est restaurée.

Si vous vous adressez à un vendeur peu fiable, vous pouvez être attrapé par ces types de fausses clés USB ou même de disques durs bon marché en Chine.


11
L'année dernière, j'ai acheté une clé USB de 64 Go de Chine sur Ebay pour 15 £. J'aurais dû savoir que la capacité ne serait pas disponible pour le prix. En fait, il s'agissait de 4 Go avec un faux "6" gravé sur l'étiquette. La manière dont le système de fichiers a été brouillé signifiait que vous ne remarqueriez pas de problème tant que plus de 4 Go n'étaient pas copiés sur le périphérique. À ce stade, les nouveaux fichiers commençaient tout juste à écraser des parties des fichiers existants. Je n'ai jamais été capable de reformater la chose afin que je puisse au moins l'utiliser comme une clé 4Gb.
FumbleFingers

7
@FumbleFingers, Oui, il est courant que les vendeurs bousillent l'info de la puce. Vous ne pouvez donc pas formater directement, mais vous devez le faire: 1. utilisez le logiciel ChipGenius + l'outil de production en série pour corriger l'info de la puce. 2. Utilisez un outil de formatage simple pour effectuer le formatage actuel. Voici un guide: agnipulse.com/2010/04/how-i-fixed-a-fake-64gb-usb-drive
KoKo

Merci! Peut-être que je pourrai en retirer un peu de valeur après tout (si je ne l'ai pas déjà jeté à la poubelle, frustré).
FumbleFingers

6

Jusqu'à ce que je voie votre message, j'étais sûr qu'il s'agissait d'un contrôleur différent. En utilisant un contrôleur modifié, vous pouvez dire tout ce que vous voulez au système d'exploitation. Mais étant donné que le format modifie ce comportement, cela signifie qu’une sorte de tromperie a également eu lieu au niveau du système de fichiers. Cela soulève deux options:

  • Il s’agit d’une modification du contrôleur qui ne fonctionne tout simplement pas après le formatage car elle dépend d’une modification du système de fichiers (ce qui me semble encore plus probable).

  • Il existe un autre moyen de le faire sans modification matérielle, par exemple en modifiant une liste chaînée de blocs libres pour qu'elle soit circulaire (je ne suis pas assez au courant des détails de FAT32 pour décider si cela est possible - pourrait vérifier dans quelques jours si personne ne le fait. le reste fait en premier ...).

EDIT: Il est naïf de supposer que FAT32 est utilisé. Un scénario bien plus probable est qu’un système de fichiers différent autorisant par inadvertance de telles astuces circulaires de gestion d’espace libre est utilisé (tant que ce système de fichiers est également pris en charge par le système d’exploitation - être pratiquement invisible pour l'utilisateur). Cela rend beaucoup plus intéressant de regarder un tel appareil ...


2
C'est un problème de système de fichiers, j'en suis sûr. Ces lecteurs ne sont pas modifiés physiquement.
Crasic

4
Je voudrais cependant acheter une telle chose plus petite .. à des fins de test :)
Greenleader

1
Si vous utilisez un contrôleur personnalisé ou modifié, vous perdez les économies de prix que vous réalisez en achetant des contrôleurs bon marché. Ainsi, il me semble beaucoup plus probable que cela se fasse uniquement au niveau du système de fichiers - une écriture brute avec dd est rapide, peu coûteuse et facile par rapport au remplacement / modification du matériel.
WheresAlice

6

Voici comment créer un disque de 1 000 000 000 000 octets (1 To) sur une clé (avec Linux):

  1. Créez un faux disque formaté de 1 To:

    mkdosfs -C  temp_file 1000000000
    
  2. Vérifiez que c'est vraiment arrivé

    ls -lh temp_file
    
  3. Connectez votre DoK et vérifiez son montage:

    mount
    
  4. Trouvez le nom du périphérique, quelque chose comme: /dev/sdb1 (Si vous faites une erreur ici, vous pourriez endommager un autre disque connecté au système, alors faites attention!)

  5. Démontez-le:

    sudo umount /dev/sdb1
    
  6. Découvrez la taille de notre table FAT:

    ls -s temp_file
    

(Le premier nombre est la taille en kilo-octets)

  1. Copier vers DoK

    echo "head -c [size_from_above]K temp_file > /dev/sdb1" | sudo sh
    
  2. Freak out votre ami! Vous pouvez le monter localement pour jouer comme ça:

    mkdir test
    sudo mount temp_file test -o loop
    

5

Assez facile,

Le contrôleur de puce flash contient certains paramètres. Identifiant du produit, identifiant du fournisseur, nombre et taille des puces flash.

En prenant un ancien périphérique avec une petite puce et en écrasant le micrologiciel avec un nombre incorrect de puces flash, la capacité totale du lecteur sera supérieure au nombre de flashs installés.

Comme le nombre de lignes d'adresse n'a pas changé, la puce sera toujours écrite. Par exemple, 128 Mo seront d'abord écrits, ensuite la puce suivante est sélectionnée, puis 128 autres seront écrits.

Comme il n’existe qu’une puce, la ligne de sélection n’est pas connectée et les données de la deuxième puce remplacent les données de la première puce.

Étant donné que le contrôleur indique la taille de toutes les puces, y compris celles qui ne sont pas connectées au système d'exploitation, le système d'exploitation la formatera avec une taille incorrecte.


3
Le problème ici est que si cela est fait de cette manière dans le matériel, les nouvelles données écraseraient également la table d'allocation de fichiers FAT32 et le répertoire racine au début du lecteur, rendant ainsi le lecteur inutilisable jusqu'à ce qu'il soit reformaté. Le fait que cela ne se produise pas semble indiquer que c'est un hack du système de fichiers qui le fait fonctionner.
Mokubai

oui, aussi ingénieux soit-il, cela se prendrait très vite.
Rohan Monga

1

Deux méthodes existent pour cela:

  1. Partition: existe plusieurs outils pour modifier et créer une partition manuellement. Par exemple, il est possible de sélectionner plus de cylindres que le réel disponible. Est trivial de le faire. Ex. partition magique et je pense que même fdisk peut le faire

  2. Micrologiciel du périphérique: L'autre méthode consiste à modifier le micrologiciel du périphérique. La plupart des appareils (mais pas tous) ont leurs informations (Plug & Play et autres informations) contenues dans le firmware.

Par exemple, une astuce habituelle consiste à utiliser le micrologiciel d’un disque dur de plus grande capacité dans un périphérique de moindre capacité et à "augmenter" l’espace.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.