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

Discussion in 'WASM.WIN32' started by Ulv, Jul 21, 2008.

  1. Ulv

    Ulv New Member

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

    Prince New Member

    Blog Posts:
    0
    Joined:
    Jul 9, 2008
    Messages:
    71
    Загрузчик ПЕ ведь выводит отладочные сообщения
    Не проще ли самому их проанализировать?
     
  3. Ulv

    Ulv New Member

    Blog Posts:
    0
    Joined:
    Apr 26, 2007
    Messages:
    55
    у меня просто мессажбокс с текстом 2.exe не является приложением Win32.
    Может из-за того что виста?
     
  4. Sol_Ksacap

    Sol_Ksacap Миша

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

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

    MSoft New Member

    Blog Posts:
    0
    Joined:
    Dec 16, 2006
    Messages:
    2,854
    ты убежден? а разве не по страницам можно?
     
  6. n0hack

    n0hack New Member

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

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

    Sol_Ksacap Миша

    Blog Posts:
    0
    Joined:
    Mar 6, 2008
    Messages:
    623
    MSoft
    Вполне убеждён, что Imagebase выравнивается в соответствии с гранулярностью выделения (allocation granularity or sth). 64K.

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

    asd New Member

    Blog Posts:
    0
    Joined:
    Mar 12, 2005
    Messages:
    952
    Location:
    Russia
    Как минимум у такоко маленького файла не может быть физ-ий размер первой секции 9200. Дальше не копал пока.
     
  9. Ulv

    Ulv New Member

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

    Prince New Member

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

    Ulv New Member

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

    Aspire New Member

    Blog Posts:
    0
    Joined:
    May 19, 2007
    Messages:
    1,028
    Я, например, не знаю об этом. Можно, чутка поподробнее? Сенкс.
     
  13. wasm_test

    wasm_test wasm test user

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

    Sol_Ksacap Миша

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