
Un outil de reconstruction forensique de systèmes de fichiers.
Un logiciel qui tente de reconstruire les structures du système de fichiers et de récupérer des fichiers. Actuellement, il ne prend en charge que NTFS.
RecuperaBit tente la reconstruction de la structure des répertoires indépendamment de :
Vous pouvez obtenir plus d'informations sur les algorithmes de reconstruction et l'architecture utilisée dans RecuperaBit en lisant ma thèse de master ou en consultant les diapositives.
Vous pouvez installer RecuperaBit en utilisant Pip :
pip install recuperabit
Ou en tant qu'outil avec uv :
uv tool install recuperabit
usage: recuperabit [-h] [-s SAVEFILE] [-w] [-o OUTPUTDIR] path
Reconstruct the directory structure of possibly damaged filesystems.
positional arguments:
path path to the disk image
optional arguments:
-h, --help show this help message and exit
-s SAVEFILE, --savefile SAVEFILE
path of the scan save file
-w, --overwrite force overwrite of the save file
-o OUTPUTDIR, --outputdir OUTPUTDIR
directory for restored contents and output files
Le principal argument est le path vers une image de flux binaire d'un disque ou d'une partition. RecuperaBit détermine automatiquement les secteurs à partir desquels les partitions commencent.
RecuperaBit ne modifie pas l'image du disque, cependant il en lit certaines parties plusieurs fois au cours de l'exécution. Il devrait également fonctionner sur des périphériques réels, tels que /dev/sda mais ce n'est pas conseillé pour les disques endommagés. RecuperaBit pourrait aggraver la situation en « stressant » un disque endommagé ou pourrait planter en raison d'une erreur d'E/S.
Optionnellement, un fichier de sauvegarde peut être spécifié avec -s. La première fois, après le processus d'analyse, les résultats sont sauvegardés dans le fichier. Après la première exécution, le fichier est lu pour n'analyser que les secteurs intéressants et accélérer la phase de chargement.
L'écrasement du fichier de sauvegarde peut être forcé avec -w.
RecuperaBit inclut une petite ligne de commande qui permet à l'utilisateur de récupérer des fichiers et d'exporter le contenu d'une partition au format CSV ou body file. Ceux-ci sont exportés dans le répertoire spécifié par -o (ou recuperabit_output).
Actuellement, RecuperaBit ne fonctionne pas avec les fichiers compressés sur un système de fichiers NTFS. Si vous avez une connaissance approfondie du fonctionnement interne de la compression de fichiers sur un système de fichiers NTFS, votre aide serait grandement appréciée, car la documentation disponible est assez rare sur le sujet.
RecuperaBit peut être exécuté avec l'implémentation standard cPython, cependant la vitesse peut être augmentée en l'utilisant avec l'interpréteur Pypy et le compilateur JIT :
pypy3 main.py /path/to/disk.img
Les fichiers peuvent être restaurés un par un ou récursivement, à partir d'un répertoire. Une fois le processus d'analyse terminé, vous pouvez vérifier la liste des partitions qui peuvent être récupérées en exécutant la commande suivante à l'invite :
recoverable
Chaque ligne affiche des informations sur une partition. Considérons l'exemple de sortie suivant :
Partition #0 -> Partition (NTFS, 15.00 MB, 11 files, Recoverable, Offset: 2048, Offset (b): 1048576, Sec/Clus: 8, MFT offset: 2080, MFT mirror offset: 17400)
Si vous souhaitez récupérer des fichiers à partir d'un répertoire spécifique, vous pouvez soit afficher l'arborescence à l'écran avec la commande tree (très verbeuse pour les grands disques), soit exporter une liste CSV des fichiers (voir help pour les détails).
Si vous préférez extraire tous les fichiers des nœuds Root et Lost Files, vous devez connaître l'identifiant du répertoire racine, selon le type de système de fichiers. Voici ceux des systèmes de fichiers pris en charge par RecuperaBit :
| Type de système de fichiers | Id racine |
|---|---|
| NTFS | 5 |
L'identifiant pour Lost Files est -1 pour chaque système de fichiers.
Par conséquent, pour restaurer Partition #0 dans notre exemple, vous devez exécuter :
restore 0 5
restore 0 -1
Les fichiers seront sauvegardés dans le répertoire de sortie spécifié par -o.
Ce logiciel est publié sous la licence GNU GPLv3. Voir LICENSE pour plus de détails.