PhotoRec
PhotoRec은 데이터 카빙 기술을 사용하는 텍스트 사용자 인터페이스 기반의 자료 복구용 자유 및 오픈 소스 유틸리티 소프트웨어다. 다양한 디지털 카메라 메모리, 하드 디스크 및 CD-ROM에서 손실된 파일을 복구하도록 설계되었다. 480개 이상의 파일 확장자(약 300개의 파일 제품군)를 가진 파일을 복구할 수 있다. 잘 알려지지 않은 파일을 감지하기 위해 사용자 정의 파일 시그니처를 추가하는 것도 가능하다. PhotoRec은 사용자가 복구하려는 손상된 매체에 데이터를 쓰려고 시도하지 않는다. 대신 복구된 파일은 PhotoRec이 실행 중인 디렉토리에 저장되며, 다른 디렉토리를 선택할 수도 있다. 일반적인 자료 복구나 디지털 포렌식 맥락에서 사용될 수 있다. PhotoRec은 TestDisk와 함께 제공된다.
리눅스에서 실행 중인 PhotoRec의 시연 모습 | |
| 개발자 | 크리스토프 그르니에 |
|---|---|
| 발표일 | 2002년 4월 30일 |
| 안정화 버전 | 7.2
/ 2024년 2월 22일 |
| 저장소 | git.cgsecurity.org/cgit/testdisk/ |
| 프로그래밍 언어 | C (nCurses) |
| 운영 체제 | 크로스 플랫폼 |
| 플랫폼 | CLI |
| 종류 | 자료 복구 |
| 라이선스 | GNU GPL v2+ (자유 소프트웨어) |
| 웹사이트 | www.cgsecurity.org/wiki/PhotoRec |
PhotoRec은 데이터 카빙 기술을 사용하는 텍스트 사용자 인터페이스 기반의 자료 복구용 자유 및 오픈 소스 유틸리티 소프트웨어다. 다양한 디지털 카메라 메모리, 하드 디스크 및 CD-ROM에서 손실된 파일을 복구하도록 설계되었다. 480개 이상의 파일 확장자(약 300개의 파일 제품군)를 가진 파일을 복구할 수 있다.[1] 잘 알려지지 않은 파일을 감지하기 위해 사용자 정의 파일 시그니처를 추가하는 것도 가능하다.[2]
PhotoRec은 사용자가 복구하려는 손상된 매체에 데이터를 쓰려고 시도하지 않는다. 대신 복구된 파일은 PhotoRec이 실행 중인 디렉토리에 저장되며, 다른 디렉토리를 선택할 수도 있다. 일반적인 자료 복구나 디지털 포렌식 맥락에서 사용될 수 있다.[3][4][5][6][7] PhotoRec은 TestDisk와 함께 제공된다.[8]
기능
[편집]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은 이전 데이터 블록을 확인하여 파일 시그니처는 발견되었지만 파일이 성공적으로 복구되지 않았는지(즉, 파일이 너무 작았는지) 확인하고 다시 시도한다. 이런 방식으로 일부 단편화된 파일을 성공적으로 복구할 수 있다.[9]
호환성
[편집]PhotoRec은 다음과 호환된다:[10]
- 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[11]
- Parted Magic[12]
- Slax-LFI (SLAX 파생 배포판)[13]
- SystemRescueCD[14]
- Ubuntu Rescue Remix (우분투 파생판)[15]
또한 수많은 *nix(주로 리눅스 기반) 배포판용 패키지로도 제공된다:
- ALT 리눅스[16]
- 아치 리눅스 Extra 저장소[17]
- 데비안 contrib[18]
- 페도라 Extras[19]
- 레드햇 Epel[20]
- FreeBSD 포트[21]
- OpenBSD 포트[22]
- 젠투[23] 및 젠투 포티지(Portage)[24]
- 맨드리바 contrib
- 소스 메이지 리눅스[25]
- 우분투[26]
같이 보기
[편집]각주
[편집]- ↑ “File Formats Recovered by PhotoRec”. April 2015.
- ↑ “Add your own extension to PhotoRec”. 2016년 5월 18일.
- ↑ Jack Wiles, Kevin Cardwell, Anthony Reyes (2007). The best damn cybercrime and digital forensics book period, p. 220. Syngress Publishing Inc. ISBN 978-1-59749-228-7.
- ↑ Cameron H. Malin, Eoghan Casey, James M. Aquilina (2008). Malware Forensics: Investigating and Analyzing Malicious Code, p. xxviii. Syngress Publishing Inc. ISBN 978-1-59749-268-3.
- ↑ Nathan Clarke (2010), Computer Forensics: A Pocket Guide, p. 67. IT Governance Publishing. ISBN 978-1-84928-039-6.
- ↑ NIST Test Results for Graphic File Carving Tool: PhotoRec v7.0-WIP.
- ↑ NIST Test Results for Video File Carving Tool: PhotoRec v7.0-WIP 보관됨 2015-04-22 - archive.today.
- ↑ Scott Mueller, Brian Knittel (2008). Upgrading and Repairing Microsoft Windows, Second Edition, page 685. Pearson Education Inc. ISBN 978-0-7897-3695-6.
- ↑ How PhotoRec works (Description from the author website).
- ↑ “PhotoRec - CGSecurity”. 2013년 3월 1일에 확인함.
- ↑ “GParted -- Live CD/USB/PXE/HD”. 2013년 3월 1일에 확인함.
- ↑ “programs – Parted Magic”. 2011년 1월 2일에 원본 문서에서 보존된 문서. 2013년 3월 1일에 확인함.
- ↑ “Recover file with PhotoRec”. May 2, 2013에 원본 문서에서 보존된 문서. March 1, 2013에 확인함.
- ↑ “System-tools - SystemRescueCd”. 2013년 3월 1일에 확인함.
- ↑ “Software Ubuntu Rescue Remix”. 2013년 1월 23일에 원본 문서에서 보존된 문서. 2013년 3월 1일에 확인함.
- ↑ “TestDisk on ALT Linux”. 2011년 8월 11일에 원본 문서에서 보존된 문서. 2011년 5월 25일에 확인함.
- ↑ ArchLinux Extra Repository
- ↑ TestDisk on Debian
- ↑ TestDisk in Fedora 보관됨 2011-03-10 - 웨이백 머신
- ↑ “RepoView: "Fedora EPEL 6 - x86_64"”. 2015년 9월 13일에 원본 문서에서 보존된 문서. 2013년 7월 27일에 확인함.
- ↑ TestDisk in FreeBSD ports
- ↑ TestDisk in OpenBSD ports
- ↑ TestDisk in Gentoo
- ↑ TestDisk in Gentoo Portage
- ↑ TestDisk in Source Mage 보관됨 2011-05-19 - 웨이백 머신
- ↑ “Delete Hui Photo Waapas Kese Laaye || डिली트 हुई फ़ोटो वापस कैसे लाए 2 मिनट में ?”. 2019년 6월 8일에 원본 문서에서 보존된 문서. 2019년 6월 8일에 확인함.
외부 링크
[편집]- PhotoRec - 공식 웹사이트