Ассемблер под Windows №20

Portable executable


Доброго времени суток, уважаемые подписчики.


Сегодня я подведу временные итоги голосования (ещё 2 дня жду ещё не ответивших), и мы начнём создание лидирующиего проекта. Вот итоги голосования:
ПроектКол-во голосов
Дизассемблер41
Среда разработки15
Улита для просмотра картинок22
Игра28
Всего проголосовавших 89, но так как многие писали лишь распределили все пункты по степени заинтересованости, я принял от них два голоса (два наиболее интересных проэкта с их точки зрения), в связи с этим общее число голосов составило 106. Так как голосование ещё не закончено, я предлагаю вам пока информацию, которая пригодится Вам и при написании дизассемблера и в других областях. Это наиболее авжные части PE-заголовка, которым начинается каждое приложение Windows. Смещение PE-заголовка находится по смещению 3Ch в любом ехе файле.

СмещениеДлиннаНазваниеОнисание
00hdwordSignatureЕсли это действительно PE, то это слово равно 00004550h
04hword CPU TypeМинимальный нужный процессор
06hword Objects CountКол-во объектов, таких как code, data и т.д.
08hdwordTime and DateДата создания программы, указывается линковщиком
0ChdwordPointer to COFF tableСмещение отладочной информации
10hdwordCOFF table sizeКоличество символов в отладочной информации
14hword NT Header sizeПо идее размер PE заголовка-18h, но на практике я не знаю что там...
16hword FlagsФлаги программы, нам они не особо интересны
18hword MagicСостояние отображённого файла
1Ahbyte Link MajorСтарший номер версии линковщика
1Bhbyte Link MinorМладший номер версии линковщика
1ChdwordCode sizeРазмер кода
20hdwordData sizeРазмер данных
24hdwordUnInit Data sizeРазмер неинициализированных данных, не занимает места на диске
28hdwordEntry pointТочка входа
2ChdwordBase of CodeНачало кода-ImageBase
30hdwordBase of DataНачало данных-ImageBase
34hdwordImage BaseВиртуальный адрес, по которому должна быть загружена программа
...... ......
80hdwordImport tableадрес таблицы импорта функций
84hdwordImport table sizeразмер таблицы импорта функций
...... ......


Если у Вас есть какие-либо вопросы по ассемблеру или по программированию под Windows, ответы на которые, как вы думаете, были бы интересны и полезны всем, то пришлите Ваш вопрос с темой "Вопрос". Я постараюсь на него ответить и с удовольствием добавлю в рассылку.


На сегодня это всё. Если есть какие вопросы, пишите. Пишите на Dark_Lord@RusFAQ.ru или Dark_Lord@land.ru.
Или свяжитесь со мной по ICQ, мой номер 126222874!

Сайт управляется системой uCoz