Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как запустить программу из памяти? [D4, D5, D6, D7]


-=ARMAN=- ©   (2006-02-21 12:53:00) 

Как запустить на исполнение EXE файл, передав ему все параметры, из потока Stream (TMemoryStream, TFileStream, TStream - неважно), и запустить его сразу в память, не сохраняя на диск?


Leonid Troyanovsky   (2006-02-22 09:22:00) [1]


> Игорь Шевченко ©   (21.02.06 22:31) [10]

> Отчего так ?


То, что касается библиотек, то стремление порождено, IMHO,
желанием скрыть сам факт использования данной библиотеки.
Что, собс-но, также, врядли можно назвать чистым помыслом.

--
Regards, LVT.


аноним   (2006-02-22 04:31:00) [2]

античит, а-ля VAC2 :) кто крутится в этих кругах и т.д., хотя и там можно обойтись иначе, но даже Valve не брезгует подобными фишками ;)


Игорь Шевченко   (2006-02-22 00:57:00) [3]

kaZaNoVa ©   (21.02.06 23:26) [11]

А зачем ? Ты можешь привести пример, когда такие действия имеют смысл с целью отличной от нагадить ближнему в карман ?


kaZaNoVa   (2006-02-21 23:26:00) [4]

очень хорошая идея есть получать код защищенной программы с сервера (с шифрованием траффика),  чтобы не копировали - надо запустить напрямую ..  (конечно "профи" из памяти дампанут и т.д.)  но такая защита от "новичков" да и просто для простых юзеров - имхо очень эффективна..


Игорь Шевченко   (2006-02-21 22:31:00) [5]

Leonid Troyanovsky ©   (21.02.06 19:01) [9]

Неббет, конечно безусловно велик, но всегда поражает "желание странного", как по твоей ссылке, так и в данной ветке. На свете миллионы программистов загружают DLL стандарным способом LoadLibrary(Ex) и не задаются вопросом, "как влезть со своими потрохами" куда-то.

Отчего так ?


Leonid Troyanovsky   (2006-02-21 19:01:00) [6]


> han_malign ©   (21.02.06 17:46) [7]


http://groups.google.com/group/microsoft.public.win32.programmer.kernel/msg/fb58c55a2edd8e88

delphi

http://groups.google.com/group/fido7.ru.delphi/msg/dbf6083b8b7fbee4

--
Regards, LVT.


TUser   (2006-02-21 18:49:00) [7]

> Чтобы передать управление необходимо получить адрес Stream + смещение на данные. Но это не так сложно,  если это настоящий exe, а не com и не бинарник, то из заголовка надо еще получить entryPoint, но еще интереснее то что надо будет переопределять сегменты ...

Вообще-то надо еще чтобы ОС понимала, что это - новый процесс. Сделала ему виртуальное адресное пространство. Запомнила бы, что данному процессу надо иногда выделять процессорное время и иные ресурсы. И т.д.

Сделать это можно, если создать ram-диск и сохранить файл туда. А потом запустить.


han_malign   (2006-02-21 17:46:00) [8]

к размышлению
http://rsdn.ru/article/baseserv/peloader.xml


Чародей   (2006-02-21 17:11:00) [9]

Чтобы передать управление необходимо получить адрес Stream + смещение на данные. Но это не так сложно,  если это настоящий exe, а не com и не бинарник, то из заголовка надо еще получить entryPoint, но еще интереснее то что надо будет переопределять сегменты ...


arman   (2006-02-21 16:59:00) [10]

вопрос ты понял?


RO   (2006-02-21 14:54:00) [11]


> представьте код


Представил.

А ты представляешь себе, ЧТО происходит в операционной системе Windows при "щелчке на иконке" ?


-=ARMAN=-   (2006-02-21 14:37:00) [12]

не может быть, чтобы никак!

представьте код:

var
Memory: TMemoryStream;
begin
Memory := TMemoryStream.Create;
Memory.LoadfromRes(12,'somefile.exe');

{ КАК ТЕПЕРЬ ЗАПУСТИТЬ ЭТОТ ФАЙЛ НЕ СОХРАНЯЯ ЕГО НА ДИСК}

Memory.Free;

end;


RO   (2006-02-21 13:58:00) [13]

Неблаговидные действия по сокрытию своей "дряни", мягко говоря, не приветствуются.
Ну а защита своего софта от несанкц.использования, грубо говоря, реализуется по-иному.

У тебя иной вариант ? Рассказывай..


RO   (2006-02-21 12:57:00) [14]

В виде автономного процесса - никак.


Наверх

Титульная страница Поиск, карта сайта Написать письмо