В память загружается .NET PE из нативного процесса

Я написал код упаковщика PE в C ++, который загружает исполняемый файл в его пространство процессов, исправляет IAT и перемещения, а затем вызывает точку входа.

Моя проблема в том, что .NET не поддерживается: я искал формат .NET PE, и это просто 32-битный исполняемый файл с точкой входа, установленной на импортированную функцию (_CorExeMain).

Если я это называю, Windows просто выскакивает ошибка, которая говорит мне, что у меня не установлен .NET.

Я также читал, что исполняемые файлы .NET PE имеют специальный COM-заголовок в DataDirectory, но я не знаю, как с этим справиться.

Я надеюсь, что кто-то может мне помочь.
заранее спасибо

0

Решение

Очевидно, что ваша идея не работает как есть для .Net.

Ваш «упакованный» исполняемый файл — это просто собственный исполняемый файл, чей код — распаковщик, а данные — сжатый реальный исполняемый файл. При запуске Windows ожидает и получает собственный код.

Для исполняемых файлов .Net вы, очевидно, должны сделать то же самое: написать исполняемый файл .Net, чей код — распаковщик, а данные — сжатый байт-код .Net.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]