Autor
|
Tema: ¿como detectar nuevos procesos en ejecucion? (Leído 5,527 veces)
|
theghost_te
Desconectado
Mensajes: 53
|
se podrá de alguna manera hacer que nuestro prog. se entere cada vez que un nuevo proceso se ejecute?
|
|
« Última modificación: 19 Diciembre 2010, 19:05 pm por theghost_te »
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
Depende de lo que estés haciendo. Antes que edites el post me pareció leer que estabas haciendo un rootkit, por lo tanto un hook en NtCreateSection es una de las mejores formas de proceder en este caso.
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
theghost_te
Desconectado
Mensajes: 53
|
si, eso estoy haciendo, gracias, estoy buscando acerca de esa api y encuentro muy poca info, si tuvieras un enlace de su explicacion y uso, no importa en ingles te lo agradeceria. seguire buscando. salu2
|
|
|
En línea
|
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
theghost_te
Desconectado
Mensajes: 53
|
thanks eternal idol ahora me pongo a trabajar.
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
EI, me parece que es como decís siempre, es un rootkit y no tiene que estar bien hecho en términos de buenas practicas. Es decir lo del callback me parece que suma para la estabilidad porque seria la forma correcta de hacer, por ejemplo, un monitor de procesos, pero en un rootkit que quiera evitar que los procesos se ejecuten es igual de efectivo ese método? Al principio no me di cuenta cuando leí por primera vez lo de usar PsSetCreateProcessNotifyRoutine pero después me puse a pensar que si quiere hacer esto sera mas que nada para evitar que por ejemplo, alguien ejecute un antivirus. Entonces, como haces para denegar la apertura del proceso desde ese callback? no se me ocurre la verdad una forma que funcione siempre. Entonces vi que PsSetCreateProcessNotifyRoutineEx puede usarse directamente para denegar la creación de determinado proceso al asignarle un error a CreationStatus de PS_CREATE_NOTIFY_INFO. CreationStatus
The NTSTATUS value to return for the process-creation operation. Drivers can change this value to an error code to prevent the process from being created. el tema es que esta existe de Vista en adelante nada mas.
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
Eternal Idol
Kernel coder
Moderador
Desconectado
Mensajes: 5.966
Israel nunca torturó niños, ni lo volverá a hacer.
|
Es probable pero no lo especifico Igual se puede hacer, calcula que tenes acceso a la memoria del proceso y una forma relativamente sencilla es sobreescribir el entry point. PD. Ademas de estar disponible desde Vista SP1 en adelante no cualquier binario puede usar PsSetCreateProcessNotifyRoutineEx, tenes que usar /integritycheck al generarlo y tiene que estar firmado.
|
|
|
En línea
|
La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste. Juan Domingo Perón
|
|
|
Littlehorse
All the world's a stage
Moderador
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
Si es verdad, a lo mejor quiere monitorear para llevar un registro de los procesos y nada mas.
La dificultad mas que nada la veía por el lado de que el proceso no esta totalmente creado al momento de la llamada, entonces por eso me pareció que era mas fácil con el hook ya que podes distinguir muy fácilmente entre una operación que no interesa y el proceso que realmente queres denegar, y en el caso de hacerlo, es igual de sencillo. Igual la parte negativa del hook es que hay que hacer bastante trabajo extra para evitar que carguen otro driver indeseado y encima mantener el sistema lo mas estable posible, pero bueno, eso es otro tema.
Otro problema mas lo del integrity check, sobre todo en x64.
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
Karman
|
en cuanto a hooks tb tenes NtCreateThread o NtOpenFile que pueden ser usados con el mismo fin, pero fuera de eso, con el tema de las notificaciones con PsSetLoadImageNotifyRoutine y PsSetCreateThreadNotifyRoutine también se pueden hacer cosas interesantes, pero (dada la fima digital de drivers de x64) dentro del modo usuario creo que con los hooks cbt (creación de ventanas etc.) se pueden bloquear algunas cosas, yo para cosas simples con CreateToolhelp32Snapshot y buscando el ejecutable he logrado corromperlos antes que terminen de cargarse... (obviamente que hay un consumo extra de procesador, pero... es en modo usuario)
S2
|
|
« Última modificación: 23 Diciembre 2010, 05:23 am por Karman »
|
En línea
|
|
|
|
|
Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Detectar la ejecución de una aplicación
Programación Visual Basic
|
naderST
|
7
|
2,720
|
2 Julio 2008, 19:39 pm
por naderST
|
|
|
Process Hacker 2.10. Analiza los procesos en ejecución del sistema con ...
Software
|
wolfbcn
|
0
|
2,406
|
4 Enero 2011, 17:18 pm
por wolfbcn
|
|
|
Process Hacker 2.11. Analiza los procesos en ejecución de tu sistema con ....
Software
|
wolfbcn
|
0
|
2,490
|
3 Febrero 2011, 21:09 pm
por wolfbcn
|
|
|
Detectar nuevos procesos?
Programación C/C++
|
APOKLIPTICO
|
2
|
2,009
|
23 Noviembre 2012, 16:00 pm
por APOKLIPTICO
|
|
|
Como detectar cambios en un listbox en tiempo de ejecución
Programación Visual Basic
|
rapbyone
|
1
|
2,728
|
20 Agosto 2016, 04:55 am
por Eleкtro
|
|