
Инструмент для криминалистической реконструкции файловой системы.
Программа, предназначенная для восстановления структур файловой системы и извлечения файлов. В настоящее время поддерживается только NTFS.
RecuperaBit пытается восстановить структуру каталогов независимо от:
Вы можете получить дополнительную информацию об алгоритмах восстановления и архитектуре, используемой в RecuperaBit, прочитав мою магистерскую диссертацию или ознакомившись со слайдами.
Вы можете установить RecuperaBit с помощью Pip:
pip install recuperabit
Или как инструмент с помощью 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
Основной аргумент — path — путь к потоку битов (bitstream) образа диска или раздела. RecuperaBit автоматически определяет секторы, с которых начинаются разделы.
RecuperaBit не изменяет образ диска, однако читает некоторые его части несколько раз во время выполнения. Он также должен работать на реальных устройствах, таких как /dev/sda, но это не рекомендуется для повреждённых накопителей. RecuperaBit может усугубить ситуацию, «нагружая» повреждённый накопитель, или аварийно завершиться из-за ошибки ввода-вывода.
При желании можно указать файл сохранения с помощью -s. При первом запуске после сканирования результаты сохраняются в файл. При последующих запусках файл считывается для анализа только интересующих секторов и ускорения загрузки.
Принудительная перезапись файла сохранения выполняется с помощью -w.
RecuperaBit включает небольшую командную строку, которая позволяет пользователю восстанавливать файлы и экспортировать содержимое раздела в формате CSV или body file. Эти файлы сохраняются в каталоге, указанном с помощью -o (или recuperabit_output).
В настоящее время RecuperaBit не работает со сжатыми файлами в файловой системе NTFS. Если у вас есть глубокие знания внутреннего устройства сжатия файлов в NTFS, ваша помощь будет очень кстати, так как доступная документация по этой теме довольно скудна.
RecuperaBit можно запускать в стандартной реализации cPython, однако производительность можно повысить, используя интерпретатор Pypy и JIT-компилятор:
pypy3 main.py /path/to/disk.img
Файлы можно восстанавливать по одному или рекурсивно, начиная с каталога. После завершения сканирования вы можете проверить список разделов, подлежащих восстановлению, выполнив следующую команду в приглашении:
recoverable
Каждая строка содержит информацию о разделе. Рассмотрим следующий пример вывода:
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)
Если вы хотите восстановить файлы, начиная с определённого каталога, вы можете либо вывести дерево на экран с помощью команды tree (очень подробно для больших дисков), либо экспортировать список файлов в CSV (см. help для подробностей).
Если вы предпочитаете извлечь все файлы из узлов Root и Lost Files, вам нужно знать идентификатор корневого каталога, который зависит от типа файловой системы. Для файловых систем, поддерживаемых RecuperaBit, он следующий:
| Тип файловой системы | ID корня |
|---|---|
| NTFS | 5 |
ID для Lost Files равен -1 для любой файловой системы.
Поэтому, чтобы восстановить Partition #0 в нашем примере, нужно выполнить:
restore 0 5
restore 0 -1
Файлы будут сохранены в каталоге вывода, указанном с помощью -o.
Это программное обеспечение выпущено под лицензией GNU GPLv3. Подробнее см. в LICENSE.