Не понимаю почему, ведь это обычный EXE файл, почему после упаковки он не запускается? Пробовал разные пакеры UPX, Aspack, Asprotect всегда результат один, .NET экзешники послу упаковки не работают...
А потомучта, под XP у .NET приложений не вызывается точка входа, выполнение сразу начинается с байткода, а он естесно еще пожат невызванным пакером. Под 2к должно работать.
.net проги начинаются с jmp _CorExeMain. а пакер похоже плющит всю(все) секции. маздай же скорее всего в случае .net просто начинает выполнять байт-код с начала секции. точно не знаю, но незнание не машало мне ковырять дотнет проги
> выполнять байт-код с начала секции. Нет, это все записано в PE заголовке, в поле IMAGE_DIRECTORY_ENTRY_COM_DESCRIPTOR
Я немного копал вопрос с запуском дотнетов. Там ситуация такая. Если грузится mscoree.dll, то она считает автоматом, что этот процесс порождён сборкой и начинает его выполнять как сборку (разбор метаданных, компиляция байткода и прочее). Управление в точку _CorExeMain может при этом не прийти вообще! Оно туда прилетает только в случае, если до перехода туда управления от PE-загрузчика байт-код не успел скомпилиться. Тогда винда крутиться внутри _CorExeMain до тех пор, пока байт-код не скомпилится и управление не перекинется на него.
_DEN_ Да нет, ничего страшного не произойдёт. Разве что передать управление на _CorExeMain, тогда прога свалится внутри mscoree.dll
Кстати, по поводу интеграции .NET'а в виндовс - 2003-й (на ХР не смотрел) при запуске любого PE файла всегда проверяет ниличия файла filename.exe.config А где используются подобные файлы? Правильно - в дотнете. Жаль, нет времени в лоадере поковыряться.