.exe 파일에서 체크섬을 생성 할 때마다 그 결과가 달라질 것인지 궁금합니다. 저는 경계 연습보다는 일반적인 연습 (firefox.exe와 같은 인기있는 앱의 SHA 해시 생성과 같은)에 관심이 있지만 둘 다 흥미 롭습니다. 감사..exe 파일의 해시
답변
파일의 해시는 파일이 동일한 경우 (즉, 동일한 순서로 같은 바이트 만 포함하는 경우) 일정해야합니다. 실행시에 디스크상의 표현을 다시 쓰는 응용 프로그램을 찾는 것은 매우 드뭅니다. 따라서 해시 은이 일정해야합니다. 자체 수정 프로그램이 있지만 디스크 사본이 아닌 코드의 메모리 내로드 사본에서 작동하는 경향이 있습니다.
편집 : "자체 업데이트"응용 프로그램을 고려해야하지만 핵심 응용 프로그램을 다운로드하고 업데이트하기 위해 약간의 도우미 프로그램을 시작하는 경향이 있습니다. 실행 중 실행을 업데이트하는 것은 어렵습니다 (특히 Windows의 경우). UNIX 시스템은 Copy on Write 시스템을 사용하는 경향이 있으므로 소프트웨어 업데이트로 인해 실행 파일이 변경 될 수도 있습니다. 그러나 다시 한번 이것은 "모범 사례"입니다.
해시는 EXE가 변경된 경우에만 변경됩니다. 앱이 자체를 수정하는 경우에만 발생하며 앱을 다시 시작하지 않고도 Windows에서 발생하지 않습니다. 파이어 폭스는 자체적으로 (재시작을 포함하여) 업데이트 할 수 있지만, 그러한 경우를 제외하면 해시는 그대로 유지됩니다.
파일이 변경되면 해시가 변경됩니다.
EXE 파일은 거의 자체적으로 변경되지 않습니다. firefox.exe
은 사용자가 새 버전으로 업데이트하면 변경됩니다.
실행 한 후 EXE 파일 (예 : firefox.exe
)의 "date modified"속성을 검사하여 변경 여부를 확인할 수 있지만 실제로 변경되지 않았 음을 알 수 있습니다.
마지막 액세스 시간의 수정을 의미하는 경우 해시가 동일하게 유지되므로 파일 액세스가 아니라 파일 시스템 수준에 저장되므로 걱정하지 않으셔도됩니다.
exe 파일의 이러한 디스크상의 수정은 바이러스 검사 프로그램에 의해 "바이러스 유사"동작으로 표시 될 수 있습니다. –
exe 자체가 exe를 실행 한 결과로 변경 될 수있는 구성 데이터를 포함하는 구성 요소 또는 "리소스"를 보유하게됩니까? – Brian
@Brian, 일반적으로 구성 데이터가 거의 항상 분리되어 저장됩니다. – bdonlan