.exe 文件的哈希值

标签 hash executable exe

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

最佳答案

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

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

关于.exe 文件的哈希值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1424248/

相关文章:

exe - 制作包含图片等文件的exe文件

c# - 在不同机器上运行 .NET 应用程序

java - IdentityHashMap.hash() 中这段代码的用途是什么?

c - 直接执行二进制资源

perl - 如何使用 Perl 中的引用复制数组?

visual-studio - dll 文件或 .exe 文件丢失

c++ - 使用不同偏移量加载的 VS 2010 和 VS 2005 生成的 Exe

windows - 在命令提示符下运行 .exe 的 Bat 文件

c++ - Perl 的 Tie::IxHash(索引关联数组)的 C++ 等价物?

c - 调整哈希 C 大小时发生内存泄漏