![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| geek2600 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 19.11.2006 Репутация: 1 Всего: 1 |
Подскажите пожалуйста,если я спроэцирую в память какой либо исполняемый файл(например cmd.exe) по средствам CreateFileMapping,можно ли как нибудь запустить его на исполнение?(т.е.создать процесс используя адрес спроэцированного файла)Помогите пожалуйста.
|
|||
|
||||
| MAKCim |
|
|||
![]() Воін дZэна ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 5644 Регистрация: 10.12.2005 Где: Менск, РБ Репутация: 1 Всего: 207 |
geek2600,
придется тогда вручную выполнять работу динамического компоновщика -------------------- Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі © |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Если файл загрузить по адресу равному его ImageBase(как правило 0x00400000), то вообще никак проблем. После загрузки просто передаёшь управление на EntryPoint и всё.
-------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| geek2600 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 19.11.2006 Репутация: 1 Всего: 1 |
так в том то и загвоздка,что это адресное пространство занято моим процессом и именно по этой причине необходимо создать новый процесс.А как это сделать?
|
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Нафига тогда проекция? CreateProcess вызывай. Ну или перекомпилируй свой процесс на другую базу, например 0x13140000 или подобное. -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
| geek2600 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 19.11.2006 Репутация: 1 Всего: 1 |
необходимо совершить именно запуск спроецированного файла.Мне это нужно для написания упаковщика.Упаковщики,я раньше писал,и проблем не возникало.А вот сейчас родилась идея вооплотить которую пока не могу:добовляем в конец упаковыемого(шифруемого)файла полный код распаковщика,начиная с РЕ заголовка.Затем,правим в ДОС заголовке по смещению 0х3С указатель на РЕ заголовок,так чтобы он указывал на РЕ
заголовок распаковщика. Добавлено через 14 минут и 7 секунд затем,шифруется и сохраняется начиная с РЕ заголовка код изначальной проги.После получения управления распаковщик должен спроэцировать файл(из которого исполняется),расшифровать его,затем по смещению 0х3С изменить смещение РЕ заголовка на изначальное(т.е.как в не упакованной проге),и запустить её как отдельный процесс(используя адрес проекции). Если что нибудь подскажешь буду очень благодарен. |
|||
|
||||
| W4FhLF |
|
|||
![]() found myself ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2831 Регистрация: 2.12.2006 Репутация: 12 Всего: 121 |
Могу посоветовать взять исходники любого упаковщика, коих огромное множество, есть и очень неплохие.
А так же почитать вот это: http://wasm.ru/article.php?article=memfile -------------------- "Бог умер" © Ницше "Ницше умер" © Бог |
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |