Descubra qual processo iniciou outro processo

Descubra qual processo iniciou outro processo

Digamos que eu tenha um explorador de processos mostrando que tenho um aplicativo chamado em EvilAppsRUs.exeexecução.

Eu o mato, mas ele simplesmente recomeça. Verifiquei se ele não possui um serviço (clicando com o botão direito-> Propriedades no Process Explorer).

Portanto, tenho quase certeza de que existe outro processo por aí (talvez chamado de algo benigno como DisplayDriver.exe) que está iniciando (e reiniciando) EvilAppsRUs.exe.

Como posso descobrir qual é o nome do processo que está reiniciando o processo maligno?

Responder1

No Windows, usar o Process Monitor pode ajudá-lo. Lá, a ferramenta Process Tree ( Ctrl+ T) mostra o relacionamento entre os processos.

Você pode fazer uma tentativa rápida baixando doPágina Oficial.

Um tempo muito útil e real. Monitoramento de Processo...

Responder2

DR:não confie nessas informações apresentadas pelas ferramentas usuais que mostram uma árvore de processos.

Sem ferramentas como omencionado Monitor de Processoou algo relacionadoSysMon você não pode saber disso.Comeles, é teoricamente possível desde que a respectiva ferramenta capturou o evento de criação do processo e utilizaqueinformações capturadas para (re)construir a árvore de processos.

No entanto, o relacionamento entre processos pai e filho não étão relevanteno Windows como no Unix.No Unix, o pai deve coletar o status de saída do filho para que o filho não acabe como um zumbi.Essa é uma informação importante, porque também explicapor queO Windows não dá a mesma ênfase ao relacionamento pai-filho-processo que o Unix em geral. Os processos pais no Windows não precisam coletar o status de saída dos processos filhos.

O que é pior: durante a criação de um processo você pode falsificar o processo pai através do uso dePROC_THREAD_ATTRIBUTE_PARENT_PROCESS, o que em geral deve dar uma ideia de quão confiável é a árvore de processos em ProcessExploradoré (dica: não é). Esta informação podetambémser falsificado em processos em execução, desde que o processo que faz essa manipulação tenha o nível apropriado de acesso ao processo que está sendo manipulado.

O Process Monitor tem a vantagem de - em teoria - poder ver os processos sendo criados e não precisar depender das informações que você pode extrairdepois do ocorridode cada respectivo processo (e que podem ser falsificados). No entanto, não sei se essa informação é usada para preencher sua árvore de processos. Parece que não. Dado que a árvore do processo pode ser mostrada antes de você capturarqualquereventos no Process Monitor, é lógico que seja semelhante ao Process Explorer, o que significa queesta informação também não é confiável.

Embora PROC_THREAD_ATTRIBUTE_PARENT_PROCESStenha sido introduzido apenas no Windows 7, o relacionamento pai-filho-processo nunca foi muito relevante, mesmo em versões anteriores do Windows.


Leitura adicional:

PS: as ferramentas convencionais usarão o documentado tlhelp32( CreateToolhelp32Snapshotet. al. comPROCESSENTRY32W::th32ParentProcessID) funcionalidade ou a API nativa do NTNtQuerySystemInformationcom alguma coisacomo SystemProcessInformation(Nebbett chamou isso SystemProcessesAndThreadsInformation). Isso significa que eles retornarão o PID pai potencialmente falsificado.

informação relacionada