Какова цель контрольной суммы в заголовке мультизагрузки?

Какова цель "контрольной суммы"?

Поле "контрольная сумма" является 32-битным значением без знака, которое при добавлении в другие магические поля (т. Е. "Magic" и "flags") должно иметь 32-битную сумму без знака, равную нулю.

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

1 ответ

Решение

Цель состоит в том, чтобы убедиться, что заголовок мультизагрузки фактически является заголовком мультизагрузки. Волшебный номер 0xE85250D6 этого недостаточно, чтобы убедиться в этом, потому что это магическое число может появиться случайно или не в исполняемых файлах, не являющихся мультизагрузочными. Например, программа для работы с мультизагрузочными исполняемыми файлами может легко иметь этот магический номер где-то в нем.

Его цель - не обнаруживать ошибки, так как бессмысленно проверять заголовок мультизагрузки на наличие повреждений. Если возможно повреждение, тогда весь исполняемый файл должен быть проверен.

Другие вопросы по тегам