Уж сколько литературы написано про это, мама не горюй. И нигде нет инфы как ее добавить если для IMAGE_SECTION_HEADER нет места, т.е. если первая секция имеет скажем PointerToRawData == 512, а все заголовки + таблица секций имеют размер 496. Т.е. нет доп. 40 байт (размер IMAGE_SECTION_HEADER) что бы впихнуть не раздвигая файл. А если раздвигать -- то какие поля надо увеличивать на FileAlignment (это из IMAGE_OPTIONAL_HEADER)? я увеличивал следующие: - у каждой секции PointerToRawData на туже FileAlignment; - у IMAGE_OPTIONAL_HEADER увеличивал SizeOfImage, SizeOfCode; и что-то еще не профиксил... т.к. файлы не запускаются после патча моим кодом. Причем с файлами в которых места хватает -- все работает. Кто сталкивался, подскажите.
попробуй удалить MZ заголовок, он обычно не менее 0x40 байт, а для еще 1й записи в таблице секций надо 0x28 байт
SizeOfCode -- The size of the code (text) section, or the sum of all code sections if there are multiple sections. SizeOfImage -- The size (in bytes) of the image, including all headers, as the image is loaded in memory. It must be a multiple of SectionAlignment. забыл сказать что увеличивал еще и это, но не помогло: SizeOfHeaders -- The combined size of an MS DOS stub, PE header, and section headers rounded up to a multiple of FileAlignment. источник: pecoff_v8.doc с сайта майкрософта
sasha_s, сори, неправильно понял твое предложение. выложи файл - возможно ты что-то где-то невыровнял