Win32 в машинных кодах


Шаблон оконного приложения - часть 3


Необходимо изменить также смещение таблицы импорта в PE-заголовке. Кроме того, в файле "header.txt" нужно изменить число секций (теперь 4), размер загруженного файла в памяти (5000h) и общий размер заголовков (400h), а также добавить данные для четвертой секции в соответствующей таблице. Размер самого файла "header.txt" также увеличен до 400h. Вот новый заголовок полностью:

n Header.bin r cx 400 f 0 l 400 0 e 0 'MZ' e 3C 40 e 40 'PE' e 44 4C 01 a 46 ; Число секций db 04 00

a 54 ; Размер дополнительного заголовка db e0 00 ; Тип файла db 0F 01 ; "Магическое" значение db 0B 01

a 68 ; Смещение точки входа ; относительно адреса загрузки db 00 10 00 00

a 74 ; Начальный адрес загрузки db 00 00 40 00 ; Выравнивание секций db 00 10 00 00 ; Выравнивание в файле db 00 02 00 00 ; Старшая версия Windows db 04 00

a 88 ; Старшая версия подсистемы db 04 00

a 90 ; Размер загруженного файла в памяти db 00 50 00 00 ; Размер всех заголовков в файле db 00 04 00 00

a 9C ; Подсистема: 2 - графическая, 03 - консольная db 02 00

a A0 ; Зарезервированный размер стека db 00 00 10 00 ; Выделенный размер стека db 00 10 00 00 ; Зарезервированный размер кучи db 00 00 10 00 ; Выделенный размер кучи db 00 10 00 00

a B4 ; Число элементов каталога смещений db 10 00 00 00 ; ; Каталог смещений/размеров ; смещение таблицы экспорта db 0 0 0 0 ; размер данных экспорта db 0 0 0 0 ; смещение таблицы импорта db 10 21 0 0 ; размер таблицы импорта db 3c 0 0 0 ; смещение таблицы ресурсов ; db 0 0 0 0 ; размер таблицы ресурсов ; db 0 0 0 0

a 138 ; Начало таблицы секций ; ; Первая секция (имя - 8 символов) db '.code' 0 0 0 ; размер в памяти db 0 4 0 0 ; смещение в памяти db 0 10 0 0 ; размер в файле db 0 4 0 0 ; смещение начала данных секции в файле db 0 4 0 0 ; Пропускаем 12 байтов db 0 0 0 0 0 0 0 0 0 0 0 0 ; атрибуты db 20 0 0 60 ; ; Вторая секция db '.rdata' 0 0 ; размер в памяти db 0 4 0 0 ; смещение в памяти db 0 20 0 0 ; размер в файле db 0 4 0 0 ; смещение в файле db 0 8 0 0 db 0 0 0 0 0 0 0 0 0 0 0 0 ; атрибуты db 40 0 0 40 ; ; Третья секция db '.data' 0 0 0 ; размер в памяти db 0 4 0 0 ; смещение в памяти db 0 30 0 0 ; размер в файле db 0 4 0 0 ; смещение в файле db 0 c 0 0 db 0 0 0 0 0 0 0 0 0 0 0 0 ; атрибуты db 40 0 0 C0 ; ; Четвертая секция db '.rsrc' 0 0 0 ; размер в памяти db 0 4 0 0 ; смещение в памяти db 0 40 0 0 ; размер в файле db 0 4 0 0 ; смещение в файле db 0 10 0 0 db 0 0 0 0 0 0 0 0 0 0 0 0 ; атрибуты db 40 0 0 c0




Начало  Назад  Вперед



Книжный магазин