iOS는 어떻게 기술적으로 파일을 삭제하며 잠재적으로 삭제를 취소 할 수 있습니까?


11

iOS 장치의 파일 삭제에 대한 흥미로운 토론이 있습니다. 문제는 NSFileManager를 사용하여 파일을 삭제하면 어떤 일이 벌어지고 있습니까?

파일 시스템 테이블에서 해당 파일 항목을 제거하여 삭제가 수행된다는 것을 이해합니다.

반대 주장은 파일 핸들이 어떤 식 으로든 남아 있고 파일이 삭제 된 것으로 표시하는 플래그 만 설정된다는 것입니다. 사용자가 iOS 장치에 대한 루트 액세스 권한을 가진 경우 해당 플래그를 재설정하고 파일 내용을 복구 할 수 있습니다.

두 경우 모두 실제 파일 내용을 덮어 쓰지 않고 블록이 다른 파일에 의해 점유 될 때까지 일반 바이트가 플래시 메모리 / 디스크에 여전히 존재한다는 데 동의합니다.

아이디어는 다음과 같습니다. 두 번째 버전이 참이면 삭제하기 전에 파일을 1 바이트 내용으로 덮어 쓸 수 있습니다 (이전에 해당 내용이 실제로는 기존 내용을 덮어 쓰지 않고 플래시 드라이브의 새 위치에 기록 되더라도). 그런 다음 파일이 복구되면 덮어 쓴 1 바이트 컨텐츠 만 사용할 수 있습니다.

우리는 원래 파일 내용을 복구 할 수있는 플래시 드라이브의 법의학 분석에 대해 이야기하고 있지 않습니다.

요약하면 다음과 같습니다.

  • iOS에서 파일 삭제는 내부적으로 어떻게 작동합니까?
  • 덮어 쓰기 방식이 삭제를 방지합니까?

답변:


3

유닉스에서는 파일 시스템이 제안한대로 수정됩니다 (항목이 파일 시스템 테이블에서 제거됨). Windows에서 파일 시스템 테이블이 수정되고 파일이 삭제 된 것으로 플래그가 지정됩니다. 데이터 복구 도구가 파일을 삭제 취소 할 수 있습니다. Windows 삭제 취소 응용 프로그램을 살펴본 결과 파일 이름도 수정되어 삭제를 취소 할 때 올바른 파일 이름을 제공해야합니다. 파일 이름을 수정하면 방금 삭제 한 파일과 동일한 이름으로 파일을 만든 경우 OS에서 이름이 같은 두 개의 파일을 조정할 필요가 없습니다.

MacOSX와 Windows에는 휴지통 (휴지통)이 있는데 삭제 된 파일을 복사하는 특수 폴더가 구현되어 있다고 생각합니다. 휴지통을 비우면 시스템 파일 테이블을 수정하여이 폴더를 제거합니다. NSFileManager를 사용하면 휴지통 (iOS에는 존재하지 않음)을 우회하여 실제로 삭제됩니다. 터미널 창에서 "rm"인 경우에도 마찬가지입니다.

이전 파일과 동일한 이름으로 새 파일을 작성하는 경우 Unix에서는 시스템 파일 테이블의 새 항목 일 뿐이지 만 이전 항목이 테이블에서 제거 되었기 때문에 새로운 항목.

그것은 나의 믿음이고, 나는 다운 투표의 맹공격에 대한 준비가되어있다 ;-)


OS X의 휴지통에 대해서는 분명히 맞습니다. 특별한 폴더 일뿐입니다. 보이지 않는 파일을 볼 때 실제로 홈 디렉토리 아래의 폴더로 볼 수 있습니다.
Sürmeli 수
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.