Просмотр полной версии : Нарушение иерархии процессов
Пусть есть процесс #1. Он создаёт процесс #2. Но через 2 секунды #1 убивается вместе с потомками, т.е. с #2. А хочется, чтобы вотрой процесс остался... И, собственно говоря, вопрос: как сделать так, чтобы процесс #2 не считал процесс #1 своим предком?
Conquerstador
16.01.2008, 23:30
если сделать промежуток не 2 сек а прикинем хотя бы 10 то можно воспользоваться прогой Hidepro (HideProcess)...
создать отдельный просецц с перви4ным потоком
ProTeuS, так вот в этом то и вопрос:
Как на API присвоить процессу первичный поток?
CreateThread();... без указания процесса-родителя
CreateThread() создает поток внутри порождающего процесса.
Чтобы создать независимый процесс надо вызывать CreateProccess();
рас уж тема про процессы : есть у кого пример на C# инжекта своего процесса в адресное пространчтво другого процесса?
Jes
http://hellknights.void.ru/releases/0x48k-blacksun-rcs-v10prebeta.rar
смотир исходники, там есть. переделать на C# не составляет труда
Если процесс #1 создаст процесс #3, который в свою очередь создаст процесс #2 а сам сразу же прекратит существование, то процесс #2 не будет считать процесс #1 своим предком
CreateThread() создает поток внутри порождающего процесса.
Чтобы создать независимый процесс надо вызывать CreateProccess();
Что-то CreateProcess() ведёт себя так же...
Итак, вот он - гениальный работающий способ: пишем батник со строкой типа @start calc.exe и запускаем из программы этот батник. Всё!=)
мда :/
api + shellExecute ?
Итак, вот он - гениальный работающий способ: пишем батник со строкой типа @start calc.exe и запускаем из программы этот батник. Всё!=)
мда.. гениальный как и автор...
CreateProcess() с cmd.exe, параметрами и скрытым окном и то уж проще ...
да не работает CreateProcess() с inherit_handles=false - Process Explorer наглядно рисует, что чем создано.
CreateProcess() с cmd.exe, параметрами и скрытым окном и то уж проще ...
это будет примерно так
procedure StartProcess(const sName:ansistring);
var sa:STARTUPINFO;
pi:PROCESS_INFORMATION;
begin
FillChar(sa,sizeof(sa),0);
sa.wShowWindow:=SW_HIDE;
sa.dwFlags:=STARTF_USESHOWWINDOW;
CreateProcess(nil,pChar('cmd /c start '+sName),nil,nil,false,0,nil,nil,sa,pi);
end;
Да тоже самое всё... просто разные вариации на тему:) А, по-хорошему, записать всё равно что-нибудь надо будет... А cmd в 9x не прокатит..
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot