[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: zombie



-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 01/15/2007 11:30 PM, Marcos Lazarini wrote:
> 2007/1/15, Felipe Augusto van de Wiel (faw) <felipe@cathedrallabs.org>:
>> On 01/14/2007 06:32 PM, sluiz wrote:
>> > Estou precisando criar um processo zombei, ou seja, preciso matar o
>> > processo pai e manter o filho funcionando.
>>
>>         Hmmm, isso não é um processo zombie.
>>
>>
>> > Toda vez que utilizo kill -9 $PPID mato o processo atual também.
>> > Já tentei executar o script filho com & no final, já
>> > tentei nohup, mas não adianta esse filho tá muito ligado ao pai.
>> > Aguém tem ulguma idéi para separar esse dois?
>>
>>         Não é beeeeem assim que funciona. A idéia de pai e filho
>> está ligada à cadeia de execução, um dos exemplos tradicionais é
>> a execução da chamada fork() em um programa C.
>>
>>         Você pode chegar próximo disso via sheel (fazer pai e
>> filho), mas pra criar um processo zombie a história é outra.
> 
> Vcs não criam um processo zombie, um processo fica zombie - quase
> todos do seu micro são candidatos a ficar zombie... ainda bem que a
> grande maioria não fica muito tempo :-)

	Tem certeza? Você já viu o funcionamento de alguns rootkits? :)


>> Processos zombie são so que não morrem, mas também não estão
>> mais em estado de interação ou seja, eles estão apenas na pilha
>> de processos consumindo recursos (ou, criando oportunidade para
>> algum tipo de ataque ou DoS).
> 
> Aqui eu discordo. O processo zombie já morreu. 

	Tem _certeza_? :-)

	Alguns rootkits modificam de tal forma a estrutura de
execução que os processos zombies na verdade estão fazendo porcaria
no sistema.


> Eu já expliquei isso outras vezes aqui, mas em resumo:
> Qdo vc faz um fork, o pai-filho mantém um grau de parentesco. É
> possível que o filho mande 'sinais' para o pai (não lembro se
> vice-versa é verdade). O pai precisa implementar a rotina de
> tratamento de sinais, pq mesmo se o filho não manda nada, quando ele
> morre ele SEMPRE sinaliza para o pai. Entre a 'hora da morte' do filho
> e a recepção e tratamento do sinal pelo pai, o processo fica zombie.
> 
> Façam o teste:
> abra um shell, que vai servir p/ monitorar os processos com um 'ps f'
> abra um outro shell, e dentro dele rode alguma coisa (pode ser até
> outro shell) - esse vai ser o filho. Agora, volte no outro terminal e
> rode 'kill -SIGSTOP <pid_do_pai>'; volte ao 2o. shell e encerre o
> processo filho. Pronto! Vc está com um processo zombie até dar o 'kill
> -SIGCONT <pid_do_pai>'
> 
> Depois que o processo virou zombie, ele já morreu - só resta o corpo
> ainda... :-)

	Num mundo perfeito sim.

	Quando começamos a falar de modificações na pilha de
execução e de códigos C bizarros pra área de segurança, isso
não beeeeem assim.


	Abraço,

- --
Felipe Augusto van de Wiel (faw)
"Debian. Freedom to code. Code to freedom!"
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
Comment: Using GnuPG with Debian - http://enigmail.mozdev.org

iD8DBQFFrD+BCjAO0JDlykYRAp6NAJoDIatdAXtqe80RmKNBeoO6WrcyaQCfSYs4
q41+ESMdjtmODCkurngBYJY=
=Kb/j
-----END PGP SIGNATURE-----



Reply to: