2009-09-14 6 views
1

.exe 파일에서 체크섬을 생성 할 때마다 그 결과가 달라질 것인지 궁금합니다. 저는 경계 연습보다는 일반적인 연습 (firefox.exe와 같은 인기있는 앱의 SHA 해시 생성과 같은)에 관심이 있지만 둘 다 흥미 롭습니다. 감사..exe 파일의 해시

답변

7

파일의 해시는 파일이 동일한 경우 (즉, 동일한 순서로 같은 바이트 만 포함하는 경우) 일정해야합니다. 실행시에 디스크상의 표현을 다시 쓰는 응용 프로그램을 찾는 것은 매우 드뭅니다. 따라서 해시 이 일정해야합니다. 자체 수정 프로그램이 있지만 디스크 사본이 ​​아닌 코드의 메모리 내로드 사본에서 작동하는 경향이 있습니다.

편집 : "자체 업데이트"응용 프로그램을 고려해야하지만 핵심 응용 프로그램을 다운로드하고 업데이트하기 위해 약간의 도우미 프로그램을 시작하는 경향이 있습니다. 실행 중 실행을 업데이트하는 것은 어렵습니다 (특히 Windows의 경우). UNIX 시스템은 Copy on Write 시스템을 사용하는 경향이 있으므로 소프트웨어 업데이트로 인해 실행 파일이 변경 될 수도 있습니다. 그러나 다시 한번 이것은 "모범 사례"입니다.

+2

exe ​​파일의 이러한 디스크상의 수정은 바이러스 검사 프로그램에 의해 "바이러스 유사"동작으로 표시 될 수 있습니다. –

+0

exe ​​자체가 exe를 실행 한 결과로 변경 될 수있는 구성 데이터를 포함하는 구성 요소 또는 "리소스"를 보유하게됩니까? – Brian

+0

@Brian, 일반적으로 구성 데이터가 거의 항상 분리되어 저장됩니다. – bdonlan

2

해시는 EXE가 변경된 경우에만 변경됩니다. 앱이 자체를 수정하는 경우에만 발생하며 앱을 다시 시작하지 않고도 Windows에서 발생하지 않습니다. 파이어 폭스는 자체적으로 (재시작을 포함하여) 업데이트 할 수 있지만, 그러한 경우를 제외하면 해시는 그대로 유지됩니다.

2

파일이 변경되면 해시가 변경됩니다.

EXE 파일은 거의 자체적으로 변경되지 않습니다. firefox.exe은 사용자가 새 버전으로 업데이트하면 변경됩니다.

실행 한 후 EXE 파일 (예 : firefox.exe)의 "date modified"속성을 검사하여 변경 여부를 확인할 수 있지만 실제로 변경되지 않았 음을 알 수 있습니다.

1

마지막 액세스 시간의 수정을 의미하는 경우 해시가 동일하게 유지되므로 파일 액세스가 아니라 파일 시스템 수준에 저장되므로 걱정하지 않으셔도됩니다.

관련 문제