PhotoRec

PhotoRec은 데이터 카빙 기술을 사용하는 텍스트 사용자 인터페이스 기반의 자료 복구용 자유 및 오픈 소스 유틸리티 소프트웨어다. 다양한 디지털 카메라 메모리, 하드 디스크 및 CD-ROM에서 손실된 파일을 복구하도록 설계되었다. 480개 이상의 파일 확장자(약 300개의 파일 제품군)를 가진 파일을 복구할 수 있다. 잘 알려지지 않은 파일을 감지하기 위해 사용자 정의 파일 시그니처를 추가하는 것도 가능하다.

PhotoRec은 사용자가 복구하려는 손상된 매체에 데이터를 쓰려고 시도하지 않는다. 대신 복구된 파일은 PhotoRec이 실행 중인 디렉토리에 저장되며, 다른 디렉토리를 선택할 수도 있다. 일반적인 자료 복구나 디지털 포렌식 맥락에서 사용될 수 있다.Jack Wiles, Kevin Cardwell, Anthony Reyes (2007). The best damn cybercrime and digital forensics book period, p. 220. Syngress Publishing Inc. .Cameron H. Malin, Eoghan Casey, James M. Aquilina (2008). Malware Forensics: Investigating and Analyzing Malicious Code, p. xxviii. Syngress Publishing Inc. .Nathan Clarke (2010), Computer Forensics: A Pocket Guide, p. 67. IT Governance Publishing. .NIST Test Results for Graphic File Carving Tool: PhotoRec v7.0-WIP.NIST Test Results for Video File Carving Tool: PhotoRec v7.0-WIP . PhotoRec은 TestDisk와 함께 제공된다.Scott Mueller, Brian Knittel (2008). Upgrading and Repairing Microsoft Windows, Second Edition, page 685. Pearson Education Inc. .

 기능 
FAT, NTFS, ext2/ext3/ext4 파일 시스템은 데이터를 데이터 블록(윈도우에서는 데이터 클러스터라고도 함)에 저장한다. 클러스터 또는 블록 크기는 파일 시스템 포맷 중에 초기화된 후 일정 수의 섹터로 유지된다. 일반적으로 대부분의 운영체제는 데이터 단편화를 최소화하기 위해 데이터를 인접한 방식으로 저장하려고 시도한다. 기계적 드라이브의 탐색 시간은 하드 디스크에 데이터를 쓰고 읽는 데 상당한 영향을 미치므로 단편화를 최소 수준으로 유지하는 것이 중요하다.

파일이 삭제되면 이 파일에 대한 메타 정보(파일명, 날짜/시간, 크기, 첫 번째 데이터 블록/클러스터의 위치 등)가 손실된다. 예를 들어 ext3/ext4 파일 시스템에서 삭제된 파일의 이름은 여전히 존재하지만 첫 번째 데이터 블록의 위치는 제거된다. 이는 데이터가 파일 시스템에 여전히 존재하지만, 새 파일 데이터에 의해 일부 또는 전부가 덮어씌워지기 전까지만 유효함을 의미한다.

이러한 "손실된" 파일을 복구하기 위해 PhotoRec은 먼저 데이터 블록(또는 클러스터) 크기를 찾으려고 시도한다. 파일 시스템이 손상되지 않았다면 이 값은 슈퍼블록(ext2/ext3/ext4) 또는 볼륨 부트 레코드(FAT, NTFS)에서 읽을 수 있다. 그렇지 않은 경우 PhotoRec은 매체를 섹터별로 읽으며 처음 10개 파일을 검색하고, 해당 위치로부터 블록/클러스터 크기를 계산한다. 이 블록 크기를 알게 되면 PhotoRec은 매체를 블록 단위(또는 클러스터 단위)로 읽는다. 각 블록은 프로그램에 포함된 시그니처 데이터베이스와 대조된다. 이 데이터베이스는 PhotoRec의 첫 버전이 출시된 이후 복구 가능한 파일 유형이 계속 늘어났다. 이는 파일 카빙이라 불리는 일반적인 자료 복구 방법이다.

예를 들어 PhotoRec은 블록이 다음과 같이 시작할 때 JPEG 파일로 식별한다.
 Start Of Image + APP0: 0xff, 0xd8, 0xff, 0xe0
 Start Of Image + APP1: 0xff, 0xd8, 0xff, 0xe1
 또는 Start Of Image + Comment: 0xff, 0xd8, 0xff, 0xfe

PhotoRec이 이미 파일 복구를 시작했다면, 해당 복구를 중단하고 가능한 경우 파일의 일관성을 확인한 뒤 발견된 시그니처에 따라 새 파일 저장을 시작한다.

데이터가 단편화되지 않았다면 복구된 파일은 원래 파일 크기와 동일하거나 더 클 수 있다. 어떤 경우에는 PhotoRec이 파일 헤더에서 원래 파일 크기를 파악할 수 있으므로 복구된 파일이 정확한 크기로 잘린다. 그러나 복구된 파일이 헤더에 명시된 크기보다 작게 끝나면 폐기된다. *.MP3 유형과 같은 일부 파일은 데이터 스트림이다. 이 경우 PhotoRec은 복구된 데이터를 파싱한 다음 스트림이 끝나면 복구를 중단한다.

파일이 성공적으로 복구되면 PhotoRec은 이전 데이터 블록을 확인하여 파일 시그니처는 발견되었지만 파일이 성공적으로 복구되지 않았는지(즉, 파일이 너무 작았는지) 확인하고 다시 시도한다. 이런 방식으로 일부 단편화된 파일을 성공적으로 복구할 수 있다.How PhotoRec works (Description from the author website).

 호환성 
PhotoRec은 다음과 호환된다:
 MS-DOS (실제 모드 또는 윈도우 9x DOS 창)
 윈도우: NT4, 2000, XP, 2003, 2008, 2016, 비스타, 윈도우 7, 윈도우 8, 윈도우 8.1, 윈도우 10, 윈도우 11
 리눅스
 FreeBSD, NetBSD, OpenBSD
 썬OS
 macOS

 배포 
PhotoRec과 TestDisk는 함께 제공된다. CGSecurity 웹사이트에서 다운로드할 수 있다.
이 유틸리티들은 다양한 리눅스 라이브 CD에서 찾을 수 있다:
 GParted 라이브 CD
 Parted Magic
 Slax-LFI (SLAX 파생 배포판)
 SystemRescueCD
 Ubuntu Rescue Remix (우분투 파생판)
또한 수많은 *nix(주로 리눅스 기반) 배포판용 패키지로도 제공된다:
 ALT 리눅스
 아치 리눅스 Extra 저장소ArchLinux Extra Repository
 데비안 contribTestDisk on Debian
 페도라 ExtrasTestDisk in Fedora 
 레드햇 Epel
 FreeBSD 포트TestDisk in FreeBSD ports
 OpenBSD 포트TestDisk in OpenBSD ports
 젠투TestDisk in Gentoo 및 젠투 포티지(Portage)
 맨드리바 contrib
 소스 메이지 리눅스TestDisk in Source Mage 
 우분투

 같이 보기 
 사진 복구
 자유-오픈 소스 소프트웨어 패키지 목록
 파일 복구

 각주 

 외부 링크 


분류:1998년 소프트웨어
분류:C로 작성된 자유 소프트웨어
분류:포터블 소프트웨어
분류:하드 디스크 소프트웨어
분류:GPL 라이선스 소프트웨어