문제

.exe 파일을 실행하기 전과 실행하는 동안 또는 실행한 후에 체크섬을 생성할 때 다른 결과를 얻을 수 있는지 궁금합니다.나는 경계 사례보다 일반적인 관행(firefox.exe와 같은 인기 앱의 SHA 해시 생성 등)에 더 관심이 있지만 둘 다 흥미롭습니다.감사해요.

도움이 되었습니까?

해결책

파일의 해시는 파일이 동일한 한 일정해야 합니다(예:동일한 순서로 동일한 바이트만 포함합니다.런타임에 온디스크 표현을 다시 작성하는 애플리케이션을 찾는 것은 매우 드뭅니다. ~해야 한다 꾸준히.자체 수정 프로그램이 있지만 디스크 복사본이 아닌 메모리에 로드된 코드 복사본에서 작동하는 경향이 있습니다.

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

다른 팁

해시는 EXE가 변경되는 경우에만 변경됩니다. 이는 앱이 자체를 수정하는 경우에만 발생합니다. 이는 앱을 다시 시작하지 않고 Windows에서 발생하지 않을 것입니다. Firefox는 스스로 업데이트 될 수 있지만 (재시작 포함) 그러한 경우와는 별도로 해시는 동일하게 유지됩니다.

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

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

EXE 파일의 "날짜 수정 된"속성을 확인할 수 있습니다. firefox.exe) 실행 한 후에는 그것이 바뀌 었는지 확인했지만 아마도 그렇지 않을 것입니다.

마지막 액세스 시간의 수정을 의미한다면 걱정하지 마십시오. 파일은 파일이 아닌 파일 시스템 레벨에 저장되므로 해시가 동일하게 유지됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top