“校验和”的目的是什么?
“校验和”字段是一个 32 位无符号值,当添加到其他魔法字段(即“魔法”和“标志”)时,它必须有一个 32 位无符号和零。
dd 0x100000000 - (0xe85250d6 + 0 + (header_end - header_start))
最佳答案
目的是验证多重引导 header 实际上是多重引导 header 。魔数(Magic Number) 0xE85250D6
不足以验证这一点,因为这个魔数(Magic Number)可能偶然出现或设计出现在非多重引导可执行文件中。例如,用于处理多重启动可执行文件的程序很容易在其中的某处包含这个魔数(Magic Number)。
它的目的不是检测错误,因为只检查多重引导 header 是否损坏是没有意义的。如果有可能损坏,则需要验证整个可执行文件。
关于assembly - multboot header 中校验和的用途是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43035568/