Для чего подпись MZ в файле PE?

Этот код работает очень хорошо

function isUndefined(array, index) {
    return ((String(array[index]) == "undefined") ? "Yes" : "No");
}
8
задан samoz 5 June 2009 в 06:17
поделиться

5 ответов

Подпись MZ - это подпись, используемая перемещаемым 16-разрядным форматом EXE MS-DOS.

Причина, по которой двоичный файл PE содержит заголовок MZ, заключается в обратной совместимости. Если исполняемый файл запускается в системе на основе DOS, он будет запускать версию MZ (которая почти всегда является просто заглушкой, в которой говорится, что вам нужно запустить программу в системе Win32).

Конечно, в настоящее время это не так полезно, как это было еще тогда, когда мир переходил от DOS к тому, что будет после него.

Тогда было несколько программ, которые фактически связывали версию DOS и версию Win32 в одном двоичном файле.

И, как и в большинстве случаев, связанных с историей Windows, у Раймонда Чена есть несколько интересных статей на эту тему:

13
ответ дан 3 November 2019 в 14:03
поделиться

Thety являются инициалами программиста Microsoft и идентифицируют файл как исполняемый файл DOS, подробнее см. http://en.wikipedia.org/wiki/DOS_executable информация.

8
ответ дан 3 November 2019 в 14:03
поделиться

Насколько я понимаю, прочитав статью в википедии и Учебное пособие Iczelion PE , это просто для поддержания совместимости и включения dos или HX DOS Extender для выполнения определенного кода рядом с заголовком MZ.

Из devsource можно найти дополнительную информацию, например, MZ обозначает Марка Збиковски, одного из разработчиков MS-DOS. И как операционная система ведет себя и обрабатывает данные из заголовка MZ.

3
ответ дан 3 November 2019 в 14:03
поделиться

Марк Збиковски поместил свои инициалы в исходный формат EXE MS-DOS. Эта подпись была необходима, чтобы отличить файлы .EXE от гораздо более простого формата .COM в DOS.

Каждый PE-файл также содержит 16-битную программу DOS и поэтому начинается с этого заголовка .EXE. Эта программа DOS обычно распечатывает «Для этой программы требуется Microsoft Windows» или подобное. Я не знаю, создают ли современные компиляторы заглушку DOS, но стандарт PE по-прежнему говорит, что PE начинается с 16-битного заголовка EXE.

2
ответ дан 3 November 2019 в 14:03
поделиться

Это «магическое число» исполняемого файла dos. Устаревшие вещи, которые вы можете игнорировать.

Исполняемый файл Dos

0
ответ дан 3 November 2019 в 14:03
поделиться
Другие вопросы по тегам:

Похожие вопросы: