После упаковки .NET приложения не работают!

Тема в разделе "WASM.RESEARCH", создана пользователем Swing, 20 май 2005.

  1. Swing

    Swing New Member

    Публикаций:
    0
    Регистрация:
    18 май 2005
    Сообщения:
    25
    Не понимаю почему, ведь это обычный EXE файл, почему после упаковки он не запускается? Пробовал разные пакеры UPX, Aspack, Asprotect всегда результат один, .NET экзешники послу упаковки не работают...
     
  2. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    А потомучта, под XP у .NET приложений не вызывается точка входа, выполнение сразу начинается с байткода, а он естесно еще пожат невызванным пакером. Под 2к должно работать.
     
  3. NoName

    NoName New Member

    Публикаций:
    0
    Регистрация:
    1 авг 2004
    Сообщения:
    1.229


    Откуда тогда маздай знает где начало байткода? И если это байт код то почему пакер жмет это дело?
     
  4. ssx

    ssx Member

    Публикаций:
    0
    Регистрация:
    19 авг 2003
    Сообщения:
    336
    .net проги начинаются с jmp _CorExeMain. а пакер похоже плющит всю(все) секции. маздай же скорее всего в случае .net просто начинает выполнять байт-код с начала секции. точно не знаю, но незнание не машало мне ковырять дотнет проги :)
     
  5. Dr.Golova

    Dr.Golova New Member

    Публикаций:
    0
    Регистрация:
    7 сен 2002
    Сообщения:
    348
    > выполнять байт-код с начала секции.



    Нет, это все записано в PE заголовке, в поле IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR
     
  6. rav

    rav New Member

    Публикаций:
    0
    Регистрация:
    19 июл 2004
    Сообщения:
    159
    Адрес:
    Москва
    Я немного копал вопрос с запуском дотнетов. Там ситуация такая. Если грузится mscoree.dll, то она считает автоматом, что этот процесс порождён сборкой и начинает его выполнять как сборку (разбор метаданных, компиляция байткода и прочее). Управление в точку _CorExeMain может при этом не прийти вообще! Оно туда прилетает только в случае, если до перехода туда управления от PE-загрузчика байт-код не успел скомпилиться. Тогда винда крутиться внутри _CorExeMain до тех пор, пока байт-код не скомпилится и управление не перекинется на него.
     
  7. _DEN_

    _DEN_ DEN

    Публикаций:
    0
    Регистрация:
    8 окт 2003
    Сообщения:
    5.383
    Адрес:
    Йобастан
    rav





    Тоесть если нормальному exe-шнику в импорт прицепить mscoree.dll, то он не запустится?
     
  8. IceStudent

    IceStudent Active Member

    Публикаций:
    0
    Регистрация:
    2 окт 2003
    Сообщения:
    4.300
    Адрес:
    Ukraine
    _DEN_

    Да нет, ничего страшного не произойдёт.

    Разве что передать управление на _CorExeMain, тогда прога свалится внутри mscoree.dll
     
  9. Grenader

    Grenader New Member

    Публикаций:
    0
    Регистрация:
    28 окт 2003
    Сообщения:
    23
    Адрес:
    Russia
    Кстати, по поводу интеграции .NET'а в виндовс - 2003-й (на ХР не смотрел) при запуске любого PE файла всегда проверяет ниличия файла filename.exe.config :) А где используются подобные файлы? Правильно - в дотнете. Жаль, нет времени в лоадере поковыряться.
     
  10. Nimnul

    Nimnul New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    136
    Адрес:
    не Китай
    Swing пользуйся пакерами сделанными специально для .Net
     
  11. Sh355

    Sh355 New Member

    Публикаций:
    0
    Регистрация:
    30 мар 2004
    Сообщения:
    56
    А какие пакеры для дотнета бывают?
     
  12. Swing

    Swing New Member

    Публикаций:
    0
    Регистрация:
    18 май 2005
    Сообщения:
    25
    Swing пользуйся пакерами сделанными специально для .Net



    А они существуют?
     
  13. Nimnul

    Nimnul New Member

    Публикаций:
    0
    Регистрация:
    21 фев 2005
    Сообщения:
    136
    Адрес:
    не Китай