바이너리 파일의 어느 부분이 변경되는지 확인하는 방법

바이너리 파일의 어느 부분이 변경되는지 확인하는 방법

파일의 어느 부분이 수정되고 있는지 확인할 수 있는 도구가 있나요? 내 하드 드라이브의 어느 부분이 액세스되고 있는지 보여주는 도구를 본 적이 있지만, 그러한 것이 존재한다면 단일 파일에 대해서도 비슷한 것을 원합니다.

파일을 암호화하고 있는데 일단 디스크에 일부가 기록되면 해당 부분이 다시 변경되는지 확인하고 싶습니다. 예를 들어, 파일의 첫 번째 MB가 암호화되어 디스크에 저장되고 프로그램이 계속 진행되면 암호화가 완료되면 첫 번째 MB에 있는 모든 항목이 업데이트됩니다.

좀 더 자세한 내용으로, gpg4win을 사용하여 매우 큰 파일(36GB)을 암호화한 다음 이를 원격 서버로 FTP로 전송해야 하는 프로세스가 있습니다. 이 프로세스의 두 단계 모두 많은 시간이 걸리지만 FTP는 조금 더 오래 걸립니다. 암호화가 파일을 계속 확장하지만 시작 부분은 변경되지 않은 경우 파일이 조금만 들어오자마자 FTP 프로세스를 시작할 수 있습니다. 하지만 암호화된 파일의 헤더가 마지막에 업데이트되면 업로드를 시작하기 전에 해당 단계가 완료될 때까지 기다리세요.

답변1

일반적으로 이는rsync 알고리즘 같은:

* split a file into blocks of x bytes
* build a hash over these x bytes
* compare the hash for each block between both files
* transfer the changed blocks

이것은 분명히 파일이 변경되지 않은 경우에만 작동합니다.모두쓰여질 때의 블록. 따라서 이인용문단명심해야 할 사항은 다음과 같습니다.

디스크 암호화는 해당 애플리케이션을 위해 특별히 설계된 특수 목적 모드를 사용하는 경우가 많습니다. 조정 가능한 좁은 블록 암호화 모드(LRW, XEX 및 XTS)와 넓은 블록 암호화 모드(CMC 및 EME)는 디스크의 섹터를 안전하게 암호화하도록 설계되었습니다. (디스크 암호화 이론 참조)

OpenGPG는 혼합 암호화 시스템입니다(목표 달성을 위해 비대칭 및 대칭 암호화를 혼합함). 지금은 사용된 암호화와 블록 수준 델타에 대한 응용 프로그램에 대해 아무것도 찾지 못했습니다. 다음 관찰 결과에 따라 다른 암호화 솔루션(예: openssl)을 선택할 수도 있습니다.http://www.daemonology.net/blog/2009-06-11-cryptographic-right-answers.html

그것은 말했다:

이진 diff를 계산하고 나중에 부품을 병합하는 두 도구입니다.

관련된:암호화된 데이터의 증분(델타) 백업

관련 정보