Форум: "Основная";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
ВнизКак запустить программу из памяти? Найти похожие ветки
← →
-=ARMAN=- (2006-02-21 12:53) [0]Как запустить на исполнение EXE файл, передав ему все параметры, из потока Stream (TMemoryStream, TFileStream, TStream - неважно), и запустить его сразу в память, не сохраняя на диск?
← →
RO (2006-02-21 12:57) [1]В виде автономного процесса - никак.
← →
RO (2006-02-21 13:58) [2]Неблаговидные действия по сокрытию своей "дряни", мягко говоря, не приветствуются.
Ну а защита своего софта от несанкц.использования, грубо говоря, реализуется по-иному.
У тебя иной вариант ? Рассказывай..
← →
-=ARMAN=- (2006-02-21 14:37) [3]не может быть, чтобы никак!
представьте код:
var
Memory: TMemoryStream;
begin
Memory := TMemoryStream.Create;
Memory.LoadfromRes(12,"somefile.exe");
{ КАК ТЕПЕРЬ ЗАПУСТИТЬ ЭТОТ ФАЙЛ НЕ СОХРАНЯЯ ЕГО НА ДИСК}
Memory.Free;
end;
← →
RO (2006-02-21 14:54) [4]
> представьте код
Представил.
А ты представляешь себе, ЧТО происходит в операционной системе Windows при "щелчке на иконке" ?
← →
arman (2006-02-21 16:59) [5]вопрос ты понял?
← →
Чародей © (2006-02-21 17:11) [6]Чтобы передать управление необходимо получить адрес Stream + смещение на данные. Но это не так сложно, если это настоящий exe, а не com и не бинарник, то из заголовка надо еще получить entryPoint, но еще интереснее то что надо будет переопределять сегменты ...
← →
han_malign © (2006-02-21 17:46) [7]к размышлению
http://rsdn.ru/article/baseserv/peloader.xml
← →
TUser © (2006-02-21 18:49) [8]> Чтобы передать управление необходимо получить адрес Stream + смещение на данные. Но это не так сложно, если это настоящий exe, а не com и не бинарник, то из заголовка надо еще получить entryPoint, но еще интереснее то что надо будет переопределять сегменты ...
Вообще-то надо еще чтобы ОС понимала, что это - новый процесс. Сделала ему виртуальное адресное пространство. Запомнила бы, что данному процессу надо иногда выделять процессорное время и иные ресурсы. И т.д.
Сделать это можно, если создать ram-диск и сохранить файл туда. А потом запустить.
← →
Leonid Troyanovsky © (2006-02-21 19:01) [9]
> 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.
← →
Игорь Шевченко © (2006-02-21 22:31) [10]Leonid Troyanovsky © (21.02.06 19:01) [9]
Неббет, конечно безусловно велик, но всегда поражает "желание странного", как по твоей ссылке, так и в данной ветке. На свете миллионы программистов загружают DLL стандарным способом LoadLibrary(Ex) и не задаются вопросом, "как влезть со своими потрохами" куда-то.
Отчего так ?
← →
kaZaNoVa © (2006-02-21 23:26) [11]очень хорошая идея есть получать код защищенной программы с сервера (с шифрованием траффика), чтобы не копировали - надо запустить напрямую .. (конечно "профи" из памяти дампанут и т.д.) но такая защита от "новичков" да и просто для простых юзеров - имхо очень эффективна..
← →
Игорь Шевченко © (2006-02-22 00:57) [12]kaZaNoVa © (21.02.06 23:26) [11]
А зачем ? Ты можешь привести пример, когда такие действия имеют смысл с целью отличной от нагадить ближнему в карман ?
← →
аноним (2006-02-22 04:31) [13]античит, а-ля VAC2 :) кто крутится в этих кругах и т.д., хотя и там можно обойтись иначе, но даже Valve не брезгует подобными фишками ;)
← →
Leonid Troyanovsky © (2006-02-22 09:22) [14]
> Игорь Шевченко © (21.02.06 22:31) [10]
> Отчего так ?
То, что касается библиотек, то стремление порождено, IMHO,
желанием скрыть сам факт использования данной библиотеки.
Что, собс-но, также, врядли можно назвать чистым помыслом.
--
Regards, LVT.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.03.26;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.068 c