Странное значение в заголовке EXE

Я видел странное значение, помещенное в заголовок EXE

00000000 :4D 5A 90 00 03 00 00 00 - 04 00 00 00 FF FF 00 00
00000010 :B8 00 00 00 00 00 00 00 - 40 00 00 00 00 00 00 00
00000020 :00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00
00000030 :00 00 00 00 00 00 00 00 - 00 00 00 00 A8 00 00 00
00000030 :00 00 00 00 00 00 00 00 - 00 00 00 00 A8 00 00 00 <-

Я не знаю что A8 делать там, но если я заменю его нулями, моя программа не будет выполняться.

Одним словом: что это?

Кроме того, не могли бы вы дать мне ссылку на полный заголовок MS DOS?

3 ответа

Решение

DWORD со смещением 0x3c - это смещение нового EXE-заголовка, также известного как IMAGE_NT_HEADERS. Поэтому, если вы измените значение там, загрузчик PE не сможет найти новый заголовок EXE.

Я подозреваю, что это смещение к новому PE-заголовку, первые 30 нечетных байтов - это заголовок MS-DOS, который смещается в файл, в котором находится "A8", соответствует полю в структуре _IMAGE_DOS_HEADER называется LONG e_lfanew; // File address of new exe header; Это то, что значение "А8" будет частью нового IMAGE_NT_HEADER который содержит эту информацию

  • DWORD Подпись;
  • _IMAGE_FILE_HEADER FileHeader;
  • _IMAGE_OPTIONAL_HEADER OptionalHeader;

Самые первые два байта являются исходным заголовком MS-DOS в исполняемом файле, как показано этой константой: WORD IMAGE_DOS_SIGNATURE = 0x5A4D; // MZ; IMAGE_NT_HEADER имеет эту подпись, чтобы определить, что это исполняемый файл для платформ NT DWORD IMAGE_NT_SIGNATURE = 0x00004550; // PE00;

Вы найдете всю эту информацию в заголовочном файле pe.h,

Что случилось, вы уничтожили значение 'A8', загрузчик не смог найти IMAGE_NT_HEADER и, следовательно, не удалось.

Первая часть PE - это заглушка MSDOS; в 0x3C (где ваш "A8") есть смещение к подписи файла PE. Если вы обнуляете его, загрузчик не сможет найти сигнатуру PE и откажется загружать ее (или загрузить как просто исполняемый файл MS-DOS, я не пробовал). Для получения дополнительной информации см. Спецификации формата PE.

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