Друзья! Вот я я приаттачиваю экзешник, это простой рабочий messagebox.exe (неважно чё он там выводит), в нём есть секция .rsrc, которая должна быть таковой, но ей не является потому, на мой взгляд, что неправильно отображается в память, не с того адреса, почему? Соответственно она не секция ресурсов получается а так, аппендицит! Так вот, PointerToRawData для этой секции есть 0X3C04- по этому файловому смещению должны браться данные для отображения в память. Но они берутся по файловому смещению 3C00- проверьте! Загрузчик нагло своенравничает- выравнивает адрес в меньшую сторону! Таким образом в секции всё содержание смещено на 4 и она не работает как надо. Такое поведение загрузчика знакомо кому-то? А то я тут не нашёл http://www.wasm.ru/article.php?article=green2red02#_Toc100906485 Инфы, что PointerToRawData должно быть выровнено на что бы то и было (А я эту секцию приаттачиваю вручную, всё-всё вручную прописываю, тут я подробно описал как http://www.wasm.ru/forum/viewtopic.php?id=43791 но вот надо же на какой фигне прокололся, может знает кто как загрузчик себя ведёт, чё куда выравнивает, чтобы я лишний раз не парился не переделывал) Спасибо, кто откликнется!
Вот, сам же и нашёл, формат PE-файла The file pointer to the first page of the section within the COFF file. For executable images, this must be a multiple of FileAlignment from the optional header. For object files, the value should be aligned on a 4‑byte boundary for best performance. When a section contains only uninitialized data, this field should be zero Кошмар какой, но я думал что если чё не так, то ось ругнулась бы, типа "приложение не является win32", а она тихой сапой проглатывала и всё! Пошёл править..