· Начало · Отвђтить · Статистика · Поиск · FAQ · Правила · Установки · Язык · Выход · WASM.RU · Noir.Ru ·

 WASM Phorum —› WASM.RESEARCH —› Пишу криптор/пакер .NET Framework сборок, помогите начинающему.

Посл.отвђт Сообщенiе


Дата: Сен 22, 2004 11:35:01 · Поправил: alex221

Привет народ! Для собственных нужд, пишу криптор экзешников .NET Framework.
Цель - защита .NET прог от дизассемблирования недалекими кракерами
Принцип работы такой: имеется stub, стандартное Win32 приложение, в нем создается
секция в которую пишем зашифрованную EXE сборку. При запуске stub`а, сборка
расшифровывается, копируется скажем в переменную, вычисляется размер
полученного экзешника. После этого начинаем стучаться в .NET Runtime Execution Engine
вызываем функцию _CorExeMain2 из mscoree.dll

__int32 STDMETHODCALLTYPE _CorExeMain2( // Executable exit code.
PBYTE pUnmappedPE, // -> memory mapped code
DWORD cUnmappedPE, // Size of memory mapped code
LPWSTR pImageNameIn, // -> Executable Name
LPWSTR pLoadersFileName, // -> Loaders Name
LPWSTR pCmdLine) // -> Command Line


Передаем указатель на первый байт распакованного EXE ->pUnmappedPE,
размер EXE в байтах -> cUnmappedPE,
название сборки -> pImageNameIn,
в качестве имени лоадера пишем NULL -> pLoadersFileName,
Из WinMain stub`а копируем lpszCmdLine параметры -> pCmdLine

А в ответ тишина... Т.е. функция _CorExeMain2 всегда возвращает -1, не запуская
распакованный экзешник. Не понимаю почему. Хотя подозреваю, что сначала
надо как-то инициализировать .NET монстра. Но примеров нет, в поисковиках
тоже ничего не нашел... :((
Если есть спецы по .NET подскажите, в чем тут может быть дело???

P.S. Меня смущает, что pUnmappedPE должен быть "memory mapped code", хотя
чес слово не понимаю, чем отличается расположение полей маппированного в память PE файла,
от просто загруженного в переменную. Или все же, при "отображении" EXE файла в память
его структура в памяти меняется??


Дата: Сен 24, 2004 13:47:51

При маппировании PE - файла создается обьект "секция".
Без нее ничего запускатся не будет.
Кроме того секция должна создаватся с флагом SEC_IMAGE.


Дата: Сен 24, 2004 16:43:50

Ок, спасибо. Но дело в том, что и при маппировании файл не запускается. Уже все перепробовал кажется..
:((


Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.082