Première étape : L’identification

Il existe 2 technologies pour stocker des données sur des mémoires NAND :

Avec puce : Le constructeur dessine un PCB (carte électronique) et implémente par soudure les composants. Lorsqu’on retire la coque de protection, les composants sont visibles et donc accessibles pour travailler.

Monolith : Le constructeur créé un moulage et intègre les composants dans ce moulage. Ainsi, ni le PCB ni aucun composant n’est visible lorsque l’on retire la coque de protection. Le travail est alors plus complexe et beaucoup plus long sur ce type de média.

Quelques exemples de médias avec puce :

nand-carte
nand-clef
nand-lecteur

Quelques exemples de médias Monolith :

nand-monolith-carte
nand-monolith-clef1
nand-monolith-clef2

Deuxième étape : Le polissage

Lorsque les données d’une clé USB, carte mémoire, téléphone ou encore SSD ne sont plus accessibles, il est nécessaire d’accéder au PCB (carte électronique) pour retrouver les pistes communicant avec les mémoires de stockage.

Cette étape permet également d’évaluer l’intégrité de la carte et des zones de données (micro-fissures, oxydations etc.)

nand-part1

Métal, aluminium, plastique, la première partie du travail consiste à retirer la protection afin de découvrir le moulage.

nand-part2

Ensuite, il est nécessaire de retirer les entraves autour du moulage, principalement constituées de plastiques, de caches pour les LED et autres éléments décoratifs.

nand-part3

Une fois libre, il faut analyser la dureté et l’épaisseur de la résine à retirer pour accéder au PCB*.*Le circuit imprimé de la carte.

nand-part4

Débute alors son polissage.

nand-part5

Après quelques minutes, la couleur saumâtre des pistes de cuivre va apparaitre indiquant que nous nous approchons du PCB.La couche de résine deviendra de plus en plus transparente jusqu’à son élimination totale.

nand-part6

La résine entièrement retirée et le composant lavé, le PCB devient alors totalement visible et prêt pour accueillir nos lecteurs.

Troisième étape : Le dump

Le dump est le processus de clonage du contenu de la puce mémoire contenant les données utilisateurs. Pour le réaliser, il est nécessaire de connecter les pistes du PCB vers nos lecteurs.

En fonction de l’état de santé de la mémoire de stockage, le dump sera réalisé plusieurs fois. Les signaux ne sont pas parfaits et un 0 peut parfois être lu comme un 1 à cause du bruit* (*Brouillage électronique altérant le signal d’origine). En lisant plusieurs fois la puce, nous pouvons éliminer un maximum de bruit et créer un dump avec un maximum de données qualitatives.

Contrairement à la lecture sur un disque dur où les codes de correction d’erreurs sont appliqués à la volée, une mémoire flash est lue de manière brute sans correction. Les codes de correction d’erreurs seront appliqués à posteriori.

nand-lecteurs

En fonction de la connectique présente sur le PCB, nous pouvons employer le lecteur adéquat.

nand-etape1

Les étapes suivantes consistent à souder des petits fils conducteurs pour relier le PCB au lecteur.Cette opération à petite échelle peut se révéler destructrice sans précision ni matériel adéquat. Mises à nu, les pistes de cuivre s’arrachent très facilement.

nand-etape3-1
nand-etape3-2
nand-etape4-1
nand-etape4-2
nand-etape5-1
nand-etape5-2
nand-etape6-1
nand-etape6-2

Quatrième étape : L’extraction

Une fois les secteurs bruts sécurisés, le travail délicat commence. En effet, les secteurs bruts contenus dans les puces mémoires contiennent des données clients, des codes de correction d’erreurs (appelés ECC) et des zones nécessaires au fonctionnement et à l’organisation des données (appelées SA). En ajoutant à cela la fragmentation et la répartition des données par le contrôleur pour allonger la durée de vie de la carte, nous disposons d’un mélange de secteurs inutilisables.

Notre mission consiste désormais à détecter et éliminer les zones contenants des ECC et travailler les zones de SA pour trouver une logique, une continuité. Enfin, déterminer l’organisation des données clients implémentée par le contrôleur de la carte.

nand-data1

Une première analyse permet d’identifier des blocs de secteurs avec un motif similaire.L’objectif est de déterminer le type de carte et/ou une première interprétation du mélange de données réalisé par le contrôleur.

nand-data2

Une fois les données brutes préparées, nous pouvons accéder à une vue hexadécimale afin de rechercher des traces de fichiers permettant de trouver le secteur 0, de boot ou un MBR**MBR : Master Boot Record, zone contenant la table des partitions.

nand-data3

Désormais débute un jeu de piste pour retrouver des morceaux de données clients afin de les assembler dans le bon ordre.Indépendant de la fragmentation ou du système de fichiers, le contrôleur organise les données par blocs de secteurs.

nand-data4

L’ordre est une suite mathématique créée par le fabriquant. Celui-ci ne communiquant pas sur sa technologie, il est nécessaire d’effectuer du reverse engineering* pour le déterminer. Ce travail peut prendre de quelques minutes à plusieurs jours (notamment les SSD ou cartes SDXC).* Reverse engineering : Rétro-ingénierie, le fait de partir d’un produit terminé pour remonter à sa conception.

nand-data5

Enfin, reste à déterminer la translation finale pour accéder aux données utilisateur. Cette translation est le lien final entre le contrôleur et le contenu des puces mémoires.

nand-data6

Les données peuvent maintenant être extraites vers un nouveau support !

Vous subissez une perte de données ?