Notice: this is an archived website / Note: ceci est une ancienne page du site archivé

Tester les cartes SD frauduleuses sous Linux

Préambules sur les cartes SD/micro-SD contrefaites

Les cartes SD contrefaites sont légion sur le marché. Principalement sur les plateformes de marché (Ebay, Amazon, LeBonCoin, MisterGoodDeal, CDiscount, RueDuCommerce, etc…), que sur les marchés réels (ces marchands avec des accessoires et gadgets de pacotilles pour mobiles et des cartes micro-SD), que dans certains magasins peu scrupuleux, mais aussi dans des commerces de bonne foi (car les grossistes y font aussi bon train de la contrefaçon).

Il s’agit principalement de cartes bas de gamme (ou de rebuts de production, rejetés lors des tests de qualité), et de petite capacité (1, 2, 4 voire 8Go maximum). Elles sont extrêmement peu coûteuses à l’achat. Leur packaging est bien fait, on dirait des vraies, mais pour ça en Chine ils sont très fort depuis longtemps.
Leur firmware est reprogrammé en usine pour les faire passer artificiellement pour des 16, 32, 64, 128Go (et même plus pour les clés USB contrefaites). Donc lorsque vous l’utilisez, votre système y verra la fausse capacité annoncée, pourra la formater dans sa fausse capacité, et vous pourrez y écrire et lire des données sans problème… jusqu’à ce que vous atteignez la capacité réelle physique de la carte. Et là les problèmes commencent: perte de vos données (pour y écrire de nouvelles données dans cet espace restreint, elle doit écraser les données précédemment stockées), la partition et le système de fichier qui éclatent en morceau.

Le succès de ces contrefaçons reposent sur un marché de « Dude » : faire la bonne affaire d’une carte SD à bas prix, et surtout « avoir la plus grosse », quitte à ne pas s’en servir complètement.

Exemple d’annonces alléchantes :

fakesd

fakesd-samsung

Les vendeurs de ces cartes ont presque toujours de très bonnes évaluations et nombreuses. Car les clients ne testent pas vraiment leurs cartes: ils insèrent leur carte, voient la capacité annoncée (youpi!), peut-être la formattent-ils (mais ça n’importe pas) et y placent quelques fichiers et sont heureux de leur achat. Résultat: ils laissent une bonne évaluation au vendeur, et leur déboires n’arriveront que bien plus tard…
Et si quelques clients s’apperçoivent d’un problème en stockant beaucoup de fichiers (ou des fichiers lourds) à la réception de la carte et décident de se plaindre, le vendeur rembourse illico prétextant (de fausse bonne foi) quelques cartes défectueuses parmi le stock. Ça ne coûte rien de rembourser quelques uns, étant donné les marges effectuées multipliées par la quantité d’autres clients floués, et ça permet de garder de bonnes évaluations pour attirer plus de gogos.

Conseils, car personne n’est à l’abri:
1. évitez les annonces trop belles pour être vraies (c’est de l’ordre du bon sens, et ça vaut pour tout)
2. Testez vos cartes à la réception, testez vos cartes SD !!!

F3 (Fight Flash Fraud), l’outil pour tester vos cartes SD sous Linux

Cet outil va prendre info de la capacité annoncée de la carte, puis y écrire successivement des fichiers de 1Go pour y remplir la capacité annoncée.
Dans un second temps il va lire, un à un tous ces fichiers et vérifier leur cohérence: s’il existent toujours, s’ils sont corrompus ou s’ils ont été ré-écrits.
Cela permettra de savoir jusqu’à quel fichier tout va bien, et donc de connaitre la capacité réelle de la carte. Et en plus vous connaîtrez la vitesse moyenne de lecture/écriture de votre carte.

Voici le site web de cet outil: F3 – an alternative to h2testw
Vous pouvez en télécharger les sources de la dernière version ici: https://github.com/AltraMayor/f3/archive/master.zip

Pour installer: dé-zipper l’archive, se rendre en console dans le dossier dézippé et lancer la commande make pour compiler les exécutables à partir des sources.

Vous pourrez utiliser l’outil en console (une fois situé dans le dossier contenant les exécutables) avec les commandes ./f3write et ./f3read suivi du chemin de montage de votre carte SD.

Test d’une carte correcte

Ici cas réel d’une carte micro-SD de 8 Go de classe 4, achetée pour mon Raspberry Pi2.

D’abord le test d’écriture

./f3write /media/krz/9016-4EF8
Free space: 7.40 GB
Creating file 1.h2w ... OK!
Creating file 2.h2w ... OK!
Creating file 3.h2w ... OK!
Creating file 4.h2w ... OK!
Creating file 5.h2w ... OK!
Creating file 6.h2w ... OK!
Creating file 7.h2w ... OK!
Creating file 8.h2w ... OK!
Free space: 0.00 Byte
Average writing speed: 5.79 MB/s

Une carte contrefaite peut évidemment fausser ce test d’écriture, c’est pourquoi il faut réaliser une seconde phase de lecture qui vérifie chaque fichiers un à un.

Le test en lecture:

./f3read /media/krz/9016-4EF8
SECTORS ok/corrupted/changed/overwritten
Validating file 1.h2w ... 2097152/ 0/ 0/ 0
Validating file 2.h2w ... 2097152/ 0/ 0/ 0
Validating file 3.h2w ... 2097152/ 0/ 0/ 0
Validating file 4.h2w ... 2097152/ 0/ 0/ 0
Validating file 5.h2w ... 2097152/ 0/ 0/ 0
Validating file 6.h2w ... 2097152/ 0/ 0/ 0
Validating file 7.h2w ... 2097152/ 0/ 0/ 0
Validating file 8.h2w ... 841664/ 0/ 0/ 0

Data OK: 7.40 GB (15521728 sectors)
Data LOST: 0.00 Byte (0 sectors)
Corrupted: 0.00 Byte (0 sectors)
Slightly changed: 0.00 Byte (0 sectors)
Overwritten: 0.00 Byte

Tout est bon: espace disponible 7.40 GB (ce qui est correct pour une 8Go), et les vitesses correspondent à une carte SD de classe 4 (voir le tableau en fin d’article).


Un test typique d’une carte contrefaite

Exemple pris sur le site http://oss.digirati.com.br/f3/

Ecriture avec f3write:

./f3write /media/michel/5EBD-5C80/
Free space: 28.83 GB
Creating file 1.h2w ... OK!
Creating file 2.h2w ... OK!
Creating file 3.h2w ... OK!
Creating file 4.h2w ... OK!
Creating file 5.h2w ... OK!
Creating file 6.h2w ... OK!
Creating file 7.h2w ... OK!
Creating file 8.h2w ... OK!
Creating file 9.h2w ... OK!
Creating file 10.h2w ... OK!
Creating file 11.h2w ... OK!
Creating file 12.h2w ... OK!
Creating file 13.h2w ... OK!
Creating file 14.h2w ... OK!
Creating file 15.h2w ... OK!
Creating file 16.h2w ... OK!
Creating file 17.h2w ... OK!
Creating file 18.h2w ... OK!
Creating file 19.h2w ... OK!
Creating file 20.h2w ... OK!
Creating file 21.h2w ... OK!
Creating file 22.h2w ... OK!
Creating file 23.h2w ... OK!
Creating file 24.h2w ... OK!
Creating file 25.h2w ... OK!
Creating file 26.h2w ... OK!
Creating file 27.h2w ... OK!
Creating file 28.h2w ... OK!
Creating file 29.h2w ... OK!
Free space: 0.00 Byte
Average Writing speed: 2.60 MB/s

La carte accepte l’écriture de 28.83Go sans problème…

Le test de lecture avec f3read:


./f3read /media/michel/5EBD-5C80/
SECTORS ok/corrupted/changed/overwritten
Validating file 1.h2w ... 0/ 2097152/ 0/ 0
Validating file 2.h2w ... 0/ 2097152/ 0/ 0
Validating file 3.h2w ... 0/ 2097152/ 0/ 0
Validating file 4.h2w ... 0/ 2097152/ 0/ 0
Validating file 5.h2w ... 0/ 2097152/ 0/ 0
Validating file 6.h2w ... 0/ 2097152/ 0/ 0
Validating file 7.h2w ... 0/ 2097152/ 0/ 0
Validating file 8.h2w ... 0/ 2097152/ 0/ 0
Validating file 9.h2w ... 0/ 2097152/ 0/ 0
Validating file 10.h2w ... 0/ 2097152/ 0/ 0
Validating file 11.h2w ... 0/ 2097152/ 0/ 0
Validating file 12.h2w ... 0/ 2097152/ 0/ 0
Validating file 13.h2w ... 0/ 2097152/ 0/ 0
Validating file 14.h2w ... 0/ 2097152/ 0/ 0
Validating file 15.h2w ... 0/ 2097152/ 0/ 0
Validating file 16.h2w ... 0/ 2097152/ 0/ 0
Validating file 17.h2w ... 0/ 2097152/ 0/ 0
Validating file 18.h2w ... 0/ 2097152/ 0/ 0
Validating file 19.h2w ... 0/ 2097152/ 0/ 0
Validating file 20.h2w ... 0/ 2097152/ 0/ 0
Validating file 21.h2w ... 0/ 2097152/ 0/ 0
Validating file 22.h2w ... 0/ 2097152/ 0/ 0
Validating file 23.h2w ... 0/ 2097152/ 0/ 0
Validating file 24.h2w ... 1916384/ 180768/ 0/ 0
Validating file 25.h2w ... 186816/ 1910336/ 0/ 0
Validating file 26.h2w ... 0/ 2097152/ 0/ 0
Validating file 27.h2w ... 0/ 2097152/ 0/ 0
Validating file 28.h2w ... 0/ 2097152/ 0/ 0
Validating file 29.h2w ... 28224/ 1705280/ 0/ 0

Data OK: 1.02 GB (2131424 sectors)
Data LOST: 27.81 GB (58322336 sectors)
Corrupted: 27.81 GB (58322336 sectors)
Slightly changed: 0.00 Byte (0 sectors)
Overwritten: 0.00 Byte (0 sectors)
Average Reading speed: 9.54 MB/s

Aille!!! Cette carte de 32Go, qui s’annonce avec une capacité de 28,83Go n’est en fait qu’une carte de 1Go de classe 2…

Conclusion

Testez vos cartes dès la réception, afin de pouvoir le plus vite possible vous retourner contre le vendeur.
Vous pourrez même effectuer ce test devant huissier, si cela vous en chante.

Mais aussi pour vous assurer de la capacité réelle de votre carte et ne pas être surpris par un perte systématique (et programmée) de vos données, ou un plantage de votre système si celui-ci ou des applications reposent en tout ou partie sur une carte SD (ex: Android, Raspberry Pi, Cubox, etc…)

Certes cela prend un peu de temps (écrire des quantités de Giga-octet à des débits de quelques MB/s…), mais cette durée est un bon investissement.

Pour rappel ce tableau des vitesses minimales selon les classes des cartes SD

Classe Performance minimale Application
SDHC Speed Class 2.svg Classe 2 2 Mo/s Enregistrement de vidéos en définition standard
SDHC Speed Class 4.svg Classe 4 4 Mo/s Enregistrement de vidéos Haute définition (HD) incluant la Full HD (de 720p à 1080p/1080i)
SDHC Speed Class 6.svg Classe 6 6 Mo/s
SDHC Speed Class 10.svg Classe 10 10 Mo/s Enregistrement de vidéos en Full HD (1080p) et enregistrements HD consécutifs (bus de données haute-vitesse)
UHS Class 1.png UHS Classe 1 (U1) 10 Mo/s Partage en temps réel et lecture de gros fichiers vidéo HD (bus UHS)
UHS Class 3.png UHS Classe 3 (U3) 30 Mo/s Enregistrement de fichiers vidéos en 4K (bus UHS)

Source: Wikipedia