Теперь рассмотрим все подробнее. Поскольку
Теперь рассмотрим все подробнее. Поскольку попытка запуска создаваемых нами программ под DOS маловероятна, можно без особых проблем обойтись без программы-заглушки DOS. PE-заголовок в этом случае будет следовать сразу за старым заголовком DOS, а именно - непосредственно после 4-байтного поля со смещением 3Ch, т.е. по смещению 40h (само поле 3Ch будет содержать в данном случае это же значение). Единственное, что нужно еще оставить в старом заголовке - это сигнатуру в виде 2 ASCII-символов 'MZ' в начале файла (байты 4Dh 5Ah). Остальные поля могут содержать нули - загрузчик Windows их не использует.
Поля PE-заголовка приведены в таблице 1. Смещения указаны относительно начала заголовка, а жирным шрифтом выделены те поля, при неверных значениях которых Windows откажется загружать программу. Остальные поля либо содержат необязательные данные (например, указатель на размещение и размер отладочных данных), либо для них предусмотрены значения по умолчанию (как для размеров кучи и стека), либо используются лишь для определенных видов файлов (например, флаги dll или контрольная сумма).
Таблица 1. PE-заголовок
СмещениеРазмер, байтПолеТипичное значение
0 | 4 | Сигнатура 'PE' | 50h 45h 00 00 |
4 | 2 | Тип процессора | 14Ch |
6 | 2 | Число секций в образе программы | - |
8 | 4 | Время/дата создания файла | - |
0Ch | 4 | Указатель на таблицу символов | 0 |
10h | 4 | Количество отладочных символов | 0 |
14h | 2 | Размер дополнительного заголовка | E0h |
16h | 2 | Тип файла | 10Fh |
18h | 2 | "Магическое" значение | 10Bh |
1Ah | 1 | Старшая версия компоновщика | - |
1Bh | 1 | Младшая версия компоновщика | - |
1Ch | 4 | Размер кода | - |
20h | 4 | Размер инициализированных данных | - |
24h | 4 | Размер неинициализированных данных | - |
28h | 4 | Смещение точки входа | - |
2Ch | 4 | Смещение секции кода в памяти | - |
30h | 4 | Смещение секции данных в памяти | - |
34h | 4 | Адрес загрузки образа в память | 400000h |
38h | 4 | Выравнивание секций в памяти | 1000h |
3Ch | 4 | Выравнивание в файле | 200h |
40h | 2 | Старшая версия Windows | 4 |
42h | 2 | Младшая версия Windows | 0 |
44h | 2 | Старшая версия образа | - |
46h | 2 | Младшая версия образа | - |
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий