Hash .exe文件的哈希

Hash .exe文件的哈希,hash,executable,exe,Hash,Executable,Exe,我想知道,在运行.exe文件之前、之后或运行该文件之后,在生成该文件的校验和时,是否会得到不同的结果。与边界情况相比,我更关心的是常见的做法(例如生成流行应用程序(如firefox.exe)的SHA哈希),但两者都很有趣。谢谢。只要文件相同(即只包含相同的字节,顺序相同),文件的哈希值就应该保持不变。很少有应用程序在运行时重写磁盘上的表示,因此散列应该是常量。有自我修改的程序,但它们倾向于在内存中加载的代码副本上操作,而不是在磁盘副本上操作 编辑:我们应该考虑“自我更新”的应用程序,但是它们往往

我想知道,在运行.exe文件之前、之后或运行该文件之后,在生成该文件的校验和时,是否会得到不同的结果。与边界情况相比,我更关心的是常见的做法(例如生成流行应用程序(如firefox.exe)的SHA哈希),但两者都很有趣。谢谢。

只要文件相同(即只包含相同的字节,顺序相同),文件的哈希值就应该保持不变。很少有应用程序在运行时重写磁盘上的表示,因此散列应该是常量。有自我修改的程序,但它们倾向于在内存中加载的代码副本上操作,而不是在磁盘副本上操作


<>编辑:我们应该考虑“自我更新”的应用程序,但是它们往往会启动一个小助手程序来下载和更新核心应用程序。很难(尤其是在Windows上)在运行时更新执行。UNIX系统倾向于在写操作系统上操作复制,因此软件更新可能会改变您脚下的可执行文件,但同样,这是一种“极端情况”。

只要文件相同(即只包含相同的字节,顺序相同),文件的哈希值就应该保持不变。很少有应用程序在运行时重写磁盘上的表示,因此散列应该是常量。有自我修改的程序,但它们倾向于在内存中加载的代码副本上操作,而不是在磁盘副本上操作


<>编辑:我们应该考虑“自我更新”的应用程序,但是它们往往会启动一个小助手程序来下载和更新核心应用程序。很难(尤其是在Windows上)在运行时更新执行。UNIX系统倾向于在写操作系统上操作复制,因此软件更新可能会改变您脚下的可执行文件-但同样,这是一个“极端情况”。

只有当可执行文件改变时,哈希才会改变。只有当应用程序修改自身时才会发生这种情况,如果不重新启动应用程序,windows上就不会发生这种情况。Firefox可能会自我更新(包括重新启动),但除此之外,哈希值将保持不变。

只有当exe发生更改时,哈希值才会更改。只有当应用程序修改自身时才会发生这种情况,如果不重新启动应用程序,windows上就不会发生这种情况。Firefox可能会自我更新(包括重新启动),但除此之外,哈希值将保持不变。

如果文件更改,哈希值将更改

EXE文件很少自行更改<如果用户更新到新版本,code>firefox.exe将发生更改


您可以在运行EXE文件(如
firefox.EXE
)后检查其“date modified”属性,查看其是否已更改,但您可能会发现它没有更改。

如果文件更改,哈希值将更改

EXE文件很少自行更改<如果用户更新到新版本,code>firefox.exe将发生更改


您可以在运行EXE文件(如
firefox.EXE
)后检查其“date modified”属性,查看其是否已更改,但您可能会发现它没有更改。

如果您指的是上次访问时间的修改,请不要担心,它存储在文件系统级别,不在文件中,因此散列将保持不变。

如果您指的是上次访问时间的修改,请不要担心,它存储在文件系统级别,而不是在文件中,因此散列将保持不变。

任何病毒检查器都可能会将exe文件的这种磁盘上修改标记为“类似病毒”行为。exe本身是否会有组件或“资源”,例如,包含可能因运行exe而更改的配置数据?@Brian,通常不会-配置数据几乎总是单独存储在磁盘上。任何病毒检查器都可能会将对exe文件的修改标记为“类病毒”行为。exe本身是否有组件或“资源”,例如,包含可能因运行exe而更改的配置数据?@Brian,通常不是-配置数据几乎总是单独存储的