2009-09-14 5 views
1

Мне интересно, получится ли когда-нибудь другой результат при создании контрольной суммы в файле .exe до и после этого или после запуска этого файла. Меня больше интересует обычная практика (например, создание хэша SHA популярного приложения, такого как firefox.exe), чем с граничными случаями, но оба они интересны. Благодарю.Хэш файла .exe

ответ

7

Хэш файла должен быть постоянным до тех пор, пока файл идентичен (т. Е. Содержит только те же байты в том же порядке). Очень редко можно найти приложения, которые переписывают их представление на диске во время выполнения, поэтому хэш должен быть постоянным. Существуют самомодифицирующие программы, но они, как правило, работают с загруженной в копии копией своего кода, а не с копией диска.

Редактировать: Мы должны рассмотреть приложения «Самообновление», но они, как правило, запускают небольшую вспомогательную программу для загрузки и обновления основного приложения. Трудно (особенно в Windows) обновить выполнение во время его работы. Системы UNIX имеют тенденцию работать с системами копирования на запись, поэтому возможно, что обновление программного обеспечения может изменить ваш исполняемый файл под ногами - но опять же, это «угловой случай».

+2

Такая модификация exe-диска на диске, вероятно, будет отмечена любым средством проверки на вирусы как поведение, подобное вирусу. –

+0

Будет ли у exe когда-либо компоненты или «ресурсы», которые, скажем, содержат данные конфигурации, которые могут измениться в результате запуска exe? – Brian

+0

@Brian, обычно нет - данные конфигурации почти всегда хранятся отдельно – bdonlan

2

Хэш изменяется только в том случае, если exe изменяется. Это произойдет, только если приложение изменится, что не произойдет в Windows без перезагрузки приложения. Firefox может обновить себя (включая перезапуск), но помимо таких случаев хеш останется прежним.

2

Хеш изменится, если файл изменится.

Файлы EXE редко меняются самостоятельно. firefox.exe изменится, если пользователь обновится до новой версии.

Вы можете проверить атрибут «date modified» EXE-файла (например, firefox.exe) после его запуска, чтобы увидеть, изменилось ли оно, но вы, вероятно, обнаружите, что это не так.

1

Если вы имеете в виду модификацию последнего времени доступа, не беспокойтесь, он хранится на уровне файловой системы, а не внутри файла, поэтому хэш останется прежним.

 Смежные вопросы

  • Нет связанных вопросов^_^