Как узнать, на что ругается загрузчик программ в ОЗУ?

Тема в разделе "WASM.BEGINNERS", создана пользователем amvoz, 7 дек 2011.

  1. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Друзья! Некотрое время назад написал программу, добавляющую секцию к PE-файлу, но видать тестировал не особенно тщательно, щас спохватился, а она секции размером больше 0X2000 байт не добавляет

    Ну то есть интерфес такой: есть бинаный файл, который суть секция и он просто добавляется последней секцией в PE-файл. В программе всё переписывается чё надо, добавляется элемент к таблице секций и прочая. Но чё-то неправильно добавляется. Если файл-секция больше 2000, то при тыкании на результирующий файл rez.exe пишется, что он не является приложением win32 (А если меньше либо равно 2000, то всё работает нормально). Писал давно, щас проверять программу (которая добавляет секцию) на правильность будет сложно.

    Вот хотелось бы знать, что конкретно не нравится загрузчику? Может какие-нибдь специальные проги есть, эмулирущие работу загрузчика и выводящие ошибки? Спасибо, кто откликнется.
     
  2. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    991
    Дай два ехе, чтоб сравнить оригинал и твой вариант.
    Вообще пересмотри поля SectionAligment,SizeOfImage,VirtualSize,SizeOfRawData,PointerRawData,VirtualAddress... ?
     
  3. amvoz

    amvoz Member

    Публикаций:
    0
    Регистрация:
    12 ноя 2008
    Сообщения:
    653
    Ага, пересмотрел. Оказывается, не так страшен чёрт, как его малюют. Чё-то где-то наисправлял и всё заработало. Узнал для себя что, оказывается, образ SizeOfImage не обазятельно кратен секционному выравниванию!