Russian Qt Forum

Компиляторы и платформы => Windows => Тема начата: Fregloin от Июнь 13, 2015, 21:32



Название: Добавление собственных секций в EXE файл
Отправлено: Fregloin от Июнь 13, 2015, 21:32
Привет. Вобщем такая задача - нужно научиться манипулировать exe файлами.
Первая задача: добавить собственную секцию в существующий файл.
Почитав мсдн в целом понял про структуру PE. Но вот один нюанс не дает мне покоя.
Как известно PE состоит из:
IMAGE_DOS_HEADER - дос заголовка
заглушки
IMAGE_NT_HEADERS - Portable Executable заголовков (массивная структура с описанием основных характеристик файла)
далее идут заголовки описания секций IMAGE_SECTION_HEADER
далее собственно данные.
Так вот вопрос, нужно ли при добавлении новой секции пересчитывать VirtualAddress,PointerToRawData для всех предыдущих секций?
Нашел пример на форуме, там почему то пересчета нет и секция пишется тупо сразу за последней. Я не понимаю, место для секций фиксировано? Посмотрев в экзешнике в который собираюсь встроить новую секцию, место за секциями еще немного имеется (нули). Написано в доках что секций может быть сколь угодно много. Или я чего то недопонимаю.


Название: Re: Добавление собственных секций в EXE файл
Отправлено: Fregloin от Июнь 15, 2015, 21:37
Разобрался, действительно нужно пересчитывать.