Какова цель контрольной суммы в заголовке мультизагрузки?
Какова цель "контрольной суммы"?
Поле "контрольная сумма" является 32-битным значением без знака, которое при добавлении в другие магические поля (т. Е. "Magic" и "flags") должно иметь 32-битную сумму без знака, равную нулю.
dd 0x100000000 - (0xe85250d6 + 0 + (header_end - header_start))
1 ответ
Цель состоит в том, чтобы убедиться, что заголовок мультизагрузки фактически является заголовком мультизагрузки. Волшебный номер 0xE85250D6
этого недостаточно, чтобы убедиться в этом, потому что это магическое число может появиться случайно или не в исполняемых файлах, не являющихся мультизагрузочными. Например, программа для работы с мультизагрузочными исполняемыми файлами может легко иметь этот магический номер где-то в нем.
Его цель - не обнаруживать ошибки, так как бессмысленно проверять заголовок мультизагрузки на наличие повреждений. Если возможно повреждение, тогда весь исполняемый файл должен быть проверен.