Restauration de fichiers supprimés sur un disque dur ntfs


Description

version 3.0

============================================
INTRODUCTION AU PROBLEME
--------------------------------------------

Quand on supprime un fichier d'un disque dur NTFS (j'entends par là qu'on le supprime définitivement, pas seulement en l'envoyant dans la corbeille, mais plutôt en vidant celle-ci), le contenu du fichier n'est pas pour autant effacé. En réalité, seul un drapeau change de valeur dans la MFT (Master File Table). L'exploitation de cette caractéristique du système de fichiers NTFS permet ainsi la restauration des fichiers supprimés.

Beaucoup d'utilitaires que l'on peut trouver sur internet et dans le commerce permettent d'effectuer en pratique cette restauration, mais bon nombre d'entre eux sont payants, et presque tous (si ce n'est la totalité) ne dévoilent pas leur code source. Ainsi ai-je décidé de programmer en Delphi ce code, qui permet de restaurer les fichiers effacés du disque.

============================================
BASES SOMMAIRES DE FONCTIONNEMENT
--------------------------------------------

-> Le disque NTFS est ouvert en lecture, ce qui permet de retrouver ses caractéristiques, ainsi que l'emplacement de la MFT.
-> Tous les enregistrements de la MFT sont parcourus afin de déterminer quels fichiers ont été effacés. Au passage, on récupère les caractéristiques de ces fichiers (offset de l'enregistrement correspondant, nom, taille, dates de création et de modification)
-> Lors de la restauration du fichier, un attribut de l'enregistrement de la MFT correspondant au fichier permet de localiser l'emplacement des données sur le disque.

============================================
DOCUMENTATION DU CODE
--------------------------------------------

Le code est commenté.
Une documentation détaillée du fonctionnement du programme est fournie sur mon site internet :
http://www.ni69.info
Rubrique "Ingénierie Informatique"
Dossier "Restauration logicielle de fichiers effacés sur un disque dur NTFS"

============================================
ATTENTION
--------------------------------------------

N'écrivez RIEN sur le disque contenant les données importantes que vous venez juste d'effacer afin d'avoir une chance de pouvoir les récupérer : chaque nouveau fichier ou dossier (ou tout autre nouvel élément qui impliquerait la création d'un enregistrement dans la MFT) serait susceptible de vous faire perdre définitivement (*) toute information sur les fichiers effacés qui vous intéressent.
(*) : en réalité, il existe toujours un moyen de récupérer ces données (persistance magnétique), mais nous sortons du cadre des fonctionnalités de ce programme. Et bien sûr, cela devient quasi-impossible quand on passe le disque dans un démagnétiseur ou que l'on efface le fichier de manière sécurisée (Gutmann, etc...)

N'essayez pas de sauvegarder les données récupérées sur le même disque à partir duquel vous effectuez la restauration. Préférez l'usage d'une clé USB, d'une carte mémoire ou d'un emplacement réseau : Comme précédemment cela risque de recouvrir d'autres fichiers que vous auriez voulu également restaurer.

Des avertissements peuvent survenir lors de l'exécution du programme, plus spécifiquement lors du parcours de la MFT à la recherche de fichiers supprimés (Message d'erreur "Unable to Fixup the Update Sequence : Invalid Record Data : No FILE Identifier found"). Cela se produit généralement quand le parcours touche à sa fin, et qu'à partir d'un certain moment les enregistrements de la MFT sont tous entièrement vides (ils n'ont jamais été remplis, donc ne peuvent bien évidemment pas contenir l'attribut "FILE"). Cela ne porte en rien à conséquence sur le fonctionnement du programme par la suite. Ces erreurs étant générées par un "raise" puis récupérées dans une structure "try/except", elles apparaîtront lors du débogage, mais seront totalement gérées à l'exécution. Si vous exécutez le débuggeur, cliquez alors juste quelques fois sur "Continuer l'exécution" et tout ira bien.
Note (version 2.2 et supérieures) : il est désormais possible de désactiver ces avertissements

============================================
EVOLUTIONS FUTURES PREVUES
--------------------------------------------
Gestion du Multi-Select pour les fichiers

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.