
법의학 파일 시스템 재구성을 위한 도구입니다.
파일 시스템 구조를 재구성하고 파일을 복구하려는 소프트웨어입니다. 현재는 NTFS만 지원합니다.
RecuperaBit은 다음 상황과 관계없이 디렉터리 구조를 재구성합니다:
재구성 알고리즘과 RecuperaBit에 사용된 아키텍처에 대한 자세한 내용은 제 석사 논문을 읽거나 슬라이드를 확인하세요.
Pip을 사용하여 RecuperaBit을 설치할 수 있습니다:
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입니다. RecuperaBit은 파티션이 시작되는 섹터를 자동으로 결정합니다.
RecuperaBit은 디스크 이미지를 수정하지 않지만, 실행 중에 일부 부분을 여러 번 읽습니다. 실제 장치(예: /dev/sda)에서도 작동해야 하지만, 손상된 드라이브에서는 권장되지 않습니다. RecuperaBit이 손상된 드라이브를 "스트레스"하여 상황을 악화시키거나 I/O 오류로 인해 충돌할 수 있습니다.
선택적으로 -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 |
Lost Files의 ID는 모든 파일 시스템에 대해 -1입니다.
따라서 예시의 Partition #0을 복원하려면 다음을 실행해야 합니다:
restore 0 5
restore 0 -1
파일은 -o로 지정된 출력 디렉터리 내에 저장됩니다.
이 소프트웨어는 GNU GPLv3에 따라 배포됩니다. 자세한 내용은 LICENSE를 참조하세요.