Нерабочий PE файл

Тема в разделе "WASM.WIN32", создана пользователем Ulv, 21 июл 2008.

  1. Ulv

    Ulv New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    55
    Вобщем как не делал, ни как не получается сделать файл исполняемым, те при его запуске, загрузчик пишет что это не PE файл, думаю что проблема с RVA первой секции и с ImageBase, большую часть секции кода отрезал (оч много), в файле всего 1 секция.
    ifolder.ru/7421105
     
  2. Prince

    Prince New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2008
    Сообщения:
    71
    Загрузчик ПЕ ведь выводит отладочные сообщения
    Не проще ли самому их проанализировать?
     
  3. Ulv

    Ulv New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    55
    у меня просто мессажбокс с текстом 2.exe не является приложением Win32.
    Может из-за того что виста?
     
  4. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Код (Text):
    1. Imagebase: 0x00404000
    Должно быть кратно 0x10000 же!
    И, да - VirtualOffset первой секции должен быть выровнен на SectionAlignment - на 0x1000 в данном случае... Собственно, ты и сам это всё знаешь, разве нет?

    Кстати, была вроде какая-то тулза, которая 'эмулирует' работу загрузчика, но выводит кучу информации в процессе своей работы - т.е. если что не так, то это сразу видно... Кто-нибудь помнит, как называется?
     
  5. MSoft

    MSoft New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2006
    Сообщения:
    2.854
    ты убежден? а разве не по страницам можно?
     
  6. n0hack

    n0hack New Member

    Публикаций:
    0
    Регистрация:
    3 июн 2008
    Сообщения:
    71
    >> Должно быть кратно 0x10000 же!
    откуда такое число? Насколько я знаю, image base должен быть кратен размеру страницы, который у обычных пользователей - 0x1000, а у особо одаренных, если не ошибаюсь, 0x100000 (не уверен). И то, все это только при отсутсвии релоков. или я в чем-то не прав?

    Ulv
    В windows 2000 необходимо, чтобы программа импортировала хотябы одну функцию (ExitProcess к примеру). Кроме того, File Allign должен быть как минимум 512, а Object Allign - не помню, толи 512, толи 4096, иначе твой экзешник будет работать только в виндах не младше XP.
     
  7. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    MSoft
    Вполне убеждён, что Imagebase выравнивается в соответствии с гранулярностью выделения (allocation granularity or sth). 64K.

    n0hack
    Там есть импорт, только он отрезан ;)
     
  8. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Как минимум у такоко маленького файла не может быть физ-ий размер первой секции 9200. Дальше не копал пока.
     
  9. Ulv

    Ulv New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    55
    >VirtualOffset первой секции должен быть выровнен на SectionAlignment - на 0x1000
    это да, я вкоде генератора не учел и написал =1000, а это ведь десят число и в переводе в hex получилось 3E8
    >Кроме того, File Allign должен быть как минимум 512
    ну он у меня 200h что есть 512, кстати глянул у простого файла - он тоже 200h
    >иначе твой экзешник будет работать только в виндах не младше XP
    мне и не надо чтобы в остальных работал, мне хотябы для висты
    >Кстати, была вроде какая-то тулза, которая 'эмулирует' работу загрузчика, но выводит кучу информации в процессе своей работы - т.е. если что не так, то это сразу видно... Кто-нибудь помнит, как называется?
    хорошо бы увидеть такую прогу, погуглил - пока ни чего не нашел.
     
  10. Prince

    Prince New Member

    Публикаций:
    0
    Регистрация:
    9 июл 2008
    Сообщения:
    71
    Зачем эмулировать работу загрузчика, если родной загрузчик ПЕ файлов ОС, как и все функции в принципе реализованные в ОС выводят
    отладочные сообщения? Туда нужно копать, а не разбираться в нерабочих или частично нерабочих эмуляторах.
     
  11. Ulv

    Ulv New Member

    Публикаций:
    0
    Регистрация:
    26 апр 2007
    Сообщения:
    55
    нашел прогу peverify которая вроде как проверяет на валидность (http://www.dweller.mail333.com/index.htm)
    также нашел еще одну ошибку в поле ImageSize, после его изменения эта прога ругается только на отсутствие импорта
     
  12. Aspire

    Aspire New Member

    Публикаций:
    0
    Регистрация:
    19 май 2007
    Сообщения:
    1.028
    Я, например, не знаю об этом. Можно, чутка поподробнее? Сенкс.
     
  13. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Aspire
    Посмотри описание Global Flags'ов в винды.
    Скачай прогу gflags.exe и поставь галочку Show Loader Snaps. После ребута мониторь дебаг аутпут. Увидишь интересные сообщения от загрузчика
     
  14. Sol_Ksacap

    Sol_Ksacap Миша

    Публикаций:
    0
    Регистрация:
    6 мар 2008
    Сообщения:
    623
    Гм... Вот, допустим, у исполняемого файла секция какая-нибудь не выровнена на SectionAlignment - всё, файлу отказано в загрузке. Разве загрузчик (при установленном флажке Show Loader Snaps) выведет причину отказа? Просто я не вижу. Неправильно смотрю?