
Digamos que tengo el explorador de procesos que me muestra que tengo una aplicación llamada EvilAppsRUs.exe
en ejecución.
Lo mato, pero simplemente comienza de nuevo. He verificado para asegurarme de que no tenga un servicio (haciendo clic derecho->Propiedades en Process Explorer).
Entonces, estoy bastante seguro de que existe otro proceso (tal vez llamado algo benigno como DisplayDriver.exe
) que se está iniciando (y reiniciando) EvilAppsRUs.exe
.
¿Cómo puedo saber cuál es el nombre del proceso que está reiniciando el proceso maligno?
Respuesta1
En Windows, usar Process Monitor puede resultarle útil. Allí, la herramienta Árbol de procesos ( Ctrl+ T) muestra la relación entre procesos.
Puedes probarlo rápidamente descargándolo desdePágina Oficial.
Un tiempo muy útil y real. Monitor de proceso...
Respuesta2
TL;DR:No confíes en esta información presentada por las herramientas habituales que muestran un árbol de procesos.
Sin herramientas como lamencionado Monitor de procesoo algo relacionadoSysMon no puedes saber esto.Conellos, es teóricamente posible siempre que la herramienta respectiva capture el evento de creación del proceso y sus usos.esoinformación capturada para (re)construir el árbol de procesos.
Sin embargo, la relación entre los procesos padre e hijo no estan relevanteen Windows como en Unix.En Unix, el padre tiene que recopilar el estado de salida del niño de modo que el niño no termine como un zombi.Ésa es una información importante, porque también explicapor quéWindows no pone el mismo énfasis en la relación padre-hijo-proceso que Unix en general. Los procesos principales en Windows no necesitan recopilar el estado de salida de sus procesos secundarios.
Lo que es peor: durante la creación de un proceso, puedes falsificar el proceso principal mediante el uso dePROC_THREAD_ATTRIBUTE_PARENT_PROCESS
, que en general debería darle una idea de cuán confiable es el árbol de procesos en ProcessExploradores (pista: no lo es). Esta información puedetambiénser falsificado en procesos en ejecución, siempre y cuando el proceso que realiza esa manipulación tenga el nivel apropiado de acceso al proceso que se está manipulando.
Process Monitor tiene la ventaja de que, en teoría, puede ver los procesos que se crean y no tiene que depender de la información que se puede extraer.después del hechode cada proceso respectivo (y que pueden ser falsificados). Sin embargo, no sé si esa información se utiliza para completar su árbol de procesos. Parece que no lo es. Dado que el árbol de procesos se puede mostrar antes de capturarcualquiereventos en Process Monitor, es lógico que sea similar a Process Explorer, lo que significa queTampoco se puede confiar en esta información..
Si bien PROC_THREAD_ATTRIBUTE_PARENT_PROCESS
solo se introdujo en Windows 7, la relación padre-hijo-proceso nunca fue muy relevante, ni siquiera en versiones anteriores de Windows.
Otras lecturas:
PD: las herramientas convencionales utilizarán lo documentado tlhelp32
( CreateToolhelp32Snapshot
et. al. conPROCESSENTRY32W::th32ParentProcessID
) funcionalidad o la API nativa de NTNtQuerySystemInformation
con algocomo SystemProcessInformation
(Nebbett lo llamó SystemProcessesAndThreadsInformation
). Esto significa que devolverán el PID principal potencialmente falso.