web-dev-qa-db-fra.com

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

Je lisais à propos de 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 fonctionnait comme annoncé (écraser les données lorsqu'il était plein), bien que lorsque je l'ai formaté, il a commencé à montrer sa véritable capacité.

Comment cela est-il réalisé?

90
Rohan Monga

FAT32 a une table maître avec de l'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.

59
Barfieldmv

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 risquez de vous faire attraper par ces types de fausses clés USB ou même de disques durs bon marché en Chine.

19
KoKo

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
    
6
Boris

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 certaine astuce 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 procéder 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 familiarisé avec les spécificités de FAT32 pour décider si cela est possible - je pourrais vérifier dans quelques jours si personne d'autre ne le fait auparavant ...).

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 de gestion d’espace libre circulaires 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 ...

6
Ofir

Assez facile,

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

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

Étant donné que 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’ya 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.

Comme 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.

5
Progger

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.

1
magallanes