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

 WASM Phorum —› WASM.ASSEMBLER —› Запуск программы находящийся в озу?

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


Дата: Июл 19, 2003 00:52:26

В мой .ехе в виде ресурса засунут другой .ехе
Как его запустить не записывая на диск, а прямо в памяти ?


Дата: Июл 19, 2003 01:19:43

OS - windows
V windows sdk rylsia, nashel createproccess(), no tam v ka4estve parametra mozet byt' tol'ko put' na diske.

p.s.
Ja tut novenkij(15 min. kak zaregistrirovalsia)
Glubina razmyshlenij Edmonda v mnoju pere4itannyh postingah vyzyvaet interes ko vsemu forumu.
(za latinicu izvinite, tol'ko segodnia spustia mnogo let sedenija pered komputerom uznal 4to mnogih ona razdrazaet)


Дата: Июл 19, 2003 09:46:17

Да нельзя этого сделать.


Дата: Июл 19, 2003 10:44:40

Johnz
Сохрани на диск и пускай.


Дата: Июл 19, 2003 12:16:14

Johnz
Запустить EXE может и не получится...
Правда, код его запустить всё таки возможно.
только кто таким извращением займётся

1. Выполнить переадресацию
2. Разбить код и данные в соответсвующие страницы памяти
3. Создать секции импорта, если их нет...
4. Присвоить страницам нужные атрибуты
5. Стек можно оставить таким как есть

И запустить.

Это теория. Не всякий EXE так запуститься. Но вообще говоря возможен именно такой вариант, когда это работать будет.

P.S
Когда то я пытался разработать систему динамической загрузки и выполнения кода. Хотя её к сожалению оставил.


Дата: Июл 19, 2003 12:18:41

Johnz
На счёт латиницы. Она раздражает потому что многие просто не умеют читать :))))
Например я. :)
А вообще то постинг можно едактировать (ссылочка Правка)


Дата: Июл 19, 2003 23:51:26

Раз volodya молчит, даю ссылку в дополнение к ответу Edmond'а:
http://www.rsdn.ru/article/default.asp?baseserv/peloader.xml

Johnz
Скорее всего это не решит вашей проблемы, но поможет её лучше понять :-)

ЗЫ: Меня тоже раздражает латиница...


Дата: Июл 20, 2003 02:26:22

Гм, когда я был маленьким, я писал нечто подобное. Сорцы профукал, но если надо, могу выписать за пол часа, ибо там кода надо на две страницы максимум =)
http://uinc.ru/scripts/load.cgi?files/dr.golova/TFakeDll.zip


Дата: Июл 20, 2003 10:21:02

Edmond
А как тогда запущенный exe будет работать, если все его функции по загрузке ресурсов будут загружать их не из него, а из "родительского" процесса. Также есть секции с релоками нет, то нельзя будет переадресацию сделать.

Так что легче на диск записать и запустить.


Дата: Июл 20, 2003 18:53:22

dragon
Так что легче на диск записать и запустить.
Или на виртуальный диск :-)


Дата: Июл 21, 2003 14:39:01

dragon
Ну если нет, то нет..
Хотя знаете. Можно так. Создать пустой процесс (на основе любого файла exe) Всё там удалить, и вписать exe в ресурсах...
:))))


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