Экзешник неправильно отображается в память, почему так?

Тема в разделе "WASM.BEGINNERS", создана пользователем amvoz, 1 фев 2012.

  1. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Друзья! Вот я я приаттачиваю экзешник, это простой рабочий 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

    но вот надо же на какой фигне прокололся, может знает кто как загрузчик себя ведёт, чё куда выравнивает, чтобы я лишний раз не парился не переделывал) Спасибо, кто откликнется!
     
  2. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Вот, сам же и нашёл, формат 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", а она тихой сапой проглатывала и всё! Пошёл править..
     
  3. Sunzer

    Sunzer Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    256
    Может все таки по ресурсам все вопросы в одной теме задавать, а не плодить уже одинадцатую?
     
  4. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    На всех не угодишь, кто-нибудь придёт, скажет, одна тема- один вопрос!
     
  5. Flint_ta

    Flint_ta New Member

    Публикаций:
    0
    Регистрация:
    25 май 2008
    Сообщения:
    312
    http://exelab.ru/f/index.php?action=vthread&forum=1&topic=15263