2

“校验和”的目的是什么?

字段“校验和”是一个 32 位无符号值,当添加到其他魔术字段(即“魔术”和“标志”)时,必须有一个 32 位无符号和为零。

dd 0x100000000 - (0xe85250d6 + 0 + (header_end - header_start))
4

1 回答 1

4

目的是验证多重引导标头实际上是多重引导标头。幻数0xE85250D6不足以验证这一点,因为这个幻数可能偶然出现或设计在非多重引导可执行文件中。例如,一个使用多重引导可执行文件的程序可以很容易地在其中的某个地方拥有这个幻数。

它的目的不是检测错误,因为仅检查多引导标头是否损坏是没有意义的。如果可能发生损坏,则需要验证整个可执行文件。

于 2017-03-27T00:17:48.953 回答