손상된 파일을 어떻게 감지하나요?

손상된 파일을 어떻게 감지하나요?

MP4, Mp3, Exe 등 많은 파일이 있는데 백업 중에 어떤 이유로든 하드 드라이브에 올바르게 복사되지 않았습니다. 16진수 편집기로 파일 내용을 검사하여 손상된 파일 중 상당수가 00으로 채워져 있음을 확인했습니다. 데이터가 있어야 할 영역이 있고, 그 중 일부는 기능적 데이터가 있어야 할 영역에 임의의 데이터가 있습니다. 적어도 00개의 채워진 파일에 대해서는 이 모든 파일을 검색하고 찾을 수 있는 방법이 있어야 합니다. Windows 검색 도구(Windows 8.1)를 사용해 보고 파일 내용 검색을 활성화했지만 Windows 검색에서는 16진수를 검색할 수 있는 방법이 없기 때문에 00 Hex를 나타내는 ASCII ..... 마침표를 검색했습니다. 16진수 편집기에서 올바른 ....을 복사하여 검색에 붙여넣었지만 작동하지 않았습니다.

많은 양의 00 16진수 채우기가 있는 모든 파일을 찾고 싶지만 이를 수행하는 방법을 모르는 경우 어떤 조언이라도 주시면 감사하겠습니다. 감사합니다.

답변1

그만큼바이너리 뷰어프로그램에는 주어진 디렉터리 내에서 16진수 시퀀스와 바이너리 패턴을 검색할 수 있는 기능이 있습니다(또는 전체 시스템에 대해 루트를 지정할 수 있습니다).

또 다른 가능한 해결책은 프로그래밍 방식으로 모든 파일을 검색하여 예상보다 많은 "00" 값이 있는 파일(즉, 평균 "00" 수가 큰 파일)을 선택하는 것입니다. 이를 위해 프로그래밍 언어를 사용하고 싶을 것입니다. 저는 통계학자이기 때문에 다음과 같은 R이유로 프로그래밍 언어를 좋아합니다.

  1. 무료입니다. 그리고
  2. 비교적 배우기 쉽습니다.

에서는 R다음 코드를 사용하여 파일의 "16진수" 값을 검사할 수 있습니다(여기서는 1바이트 16진수를 보고 있다고 가정합니다) R.

install.packages("DescTools")
library(DescTools)
myBinary="D:/temp/2.jpg"

myhex = readRaw(myBinary)
#View first 20 entries
head(myhex$fileRaw, n=20)
 ff d8 ff e0 00 10 4a 46 49 46 00 01 01 00 00 01 00 01 00 00

이제 "00" 항목의 평균 수를 찾을 수 있습니다.

#Find the mean number of times a "00" entry appears in this file
mean(myhex$fileRaw=="00")
 0.008298835

여러분이 해야 할 일은 이 코드 주위에 간단한 반복 구조를 배치하여 디렉터리의 모든 파일을 반복하고 "00" 항목의 평균 수를 출력하는 것입니다. 이 알고리즘을 여러 가지 방법으로 실행하면 훨씬 더 정교해지고 최적의 순진한 평균 컷오프 지점을 "훈련"할 수 있습니다.모두 다 아는좋은(즉, 손상되지 않은) 파일을 계산하고 해당 파일에 있는 "00" 항목의 평균 평균(즉, 평균)을 계산합니다. 아마도 이에 대한 일반적인 신뢰 구간을 계산할 수 있으며 신뢰 구간의 상한을 컷오프 지점으로 사용하여 프로그램에 입력하여 파일을 검색할 수 있습니다.알려지지 않은부패. 이것은 부패한 사람들을 골라내는 데 도움이 될 것입니다.

관련 정보