Evitar cerrar mi programa desde el administrador de tareas
Como evito que cierren mi programa desde el administrador de tareas de Windows
|
|
Cualquier "truco" que utilices para impedir que cierren tu aplicación desde el administrador de tareas no impedirá que te lo cierren usando otro programa. No hay forma "legitima" de impedir que un usuario con derechos de administrador cierre un proceso (ojo, he dicho legitima). Y además no tendría sentido, el administrador tiene que poder hacer lo que le venga en gana, para eso es el administrador.
Por el contrario si lo que quieres es impedir que un usuario con una "cuenta limitada" cierre un proceso, la cosa cambia. Puedes hacer correr tu aplicación como un servicio, por ejemplo. |
Hay procesos de Windows que ni como administrador se pueden quitar. ¿Cómo se hace eso?
// Saludos |
Cita:
|
winlogon, lsass, csrss...
Por cierto, el unlocker puede quitar el winlogon, aunque el resultado no es muy bonito :D // Saludos |
Pensaba responderte que cualquier otro programa, puede cerrarlos, pero ya veo que lo has descubierto por ti solo. Aunque como también has descubierto el resultado suele ser catastrófico, pero eso es porque son críticos para el funcionamiento del sistema operativo, no es que windows se cierre por venganza :p .
La razón de que desde el administrador de tareas no se puedan cerrar es bastante mas simple de lo que parece, el administrador de tareas comprueba el nombre de la aplicación antes de intentar cerrarla y si el nombre coincide se niega a cerrarla. Si le pones a cualquier programa el nombre "lsass.exe" el administrador de tareas se negara a cerrarlo, haz la prueba. |
Hola,
Esto que comentas ahora Seoane (y que ya ha salido a colación alguna vez en los Foros) parece una verdadera chapuza, ¿no? "Eppur se move"... |
Te creo, lo que pasa es que ahora no encuentro un ejemplo: probé pero alguno me eché que se apago mi pc :D. Sin embargo, en los ejemplo que puse aparece el mensaje de: "Este proceso es crítico..." pero en ocasions he visto alguno que luego de unos segundos me dice que no tengo permiso y yo siempre uso cuenta de administrador (lo sé, está mal, muy mal, pero esa es otra cuestión :p). Si encuentor uno, te digo.
Cita:
// Saludos |
Cita:
Cita:
|
Una pregunta
Vi los hilos de seoane pero me pregunto si no habra una via mas elegante mediante código con la cual yo pueda indicarle al administrador de tareas que mi aplicacion es un proceso critico del sistema. Tal vez hacer algun hook a la API que controla el administrador de tareas (realmente no tengo muy claro como funciona eso, si me pueden indicar link con literatura lo agradeceria). El caso es que requiero urgentemente poder poner una aplicacion como proceso critico del sistema.
Salu2 |
Curiosidades
MATAR PROCESOS.. casi todos...
Cita:
|
Logré dejar así al sistema:
http://img163.imageshack.us/my.php?image=procexpeh6.png Ese proceso del "Drive Letter Access" que parece tener que ver con el acceso a la unidad grabadora de cds, fue imposible matarlo. // Saludos |
Me pregunto Roman, como de funcional es el windows después de cerrar todos esos procesos. ¿Se puede trabajar con el? o solo sirve como anécdota
|
Esteeee.... Pues, si no te importa tener que oprimir el botón de encendido tres segundos para poder apagar la computadora, y prescindir de superfluosidades como el portapapeles, ... en fin, al menos se puede navegar. Vaya, pues, una anécdota :D
Pero, ¿te has fijado en el proceso que comento? ¿Cómo hace para permanecer vivo? // Saludos |
Cita:
Ahora que hablamos de DRM y procesos intocables, algunos rootkits interceptan la Api TerminateProcess, impidiendo así que los otros programas lo cierren. Sera esa la explicación en este caso, se estará defendiendo al mas puro estilo rootkit :D |
Je, je, pues sí, podría ser un rootkit, pero es proceso ya venía con la pc. No da ningún error, simplemente se queda ahí.
// Saludos |
Cita:
Está escrito en 'C', pero la técnica es genérica. P.e. seoane lo utiliza aquí. (EnablePrivilege). Una vez obtenidos los privilegios, realiza un ShellExecute al TaskManager que hereda esos privilegios y a matar todo lo que se ponga por delante... Las explicaciones están aquí (hay que mover la pantalla del navegador un poco hacia la derecha para verlo bien....);) Siguiendo con el asunto de evitar que se puede matar un proceso, aquí se describen unas técnicas usuales, pero el plato fuerte está aquí donde se describe una patente para realizar procesos seguros. Quien le pone el cascabel al gato ? |
Pese a lo dicho antes... al mi el procedimiento o no me funciona...
|
1 Archivos Adjunto(s)
Siguiendo lo comentado por ardilla, vamos a hacer un killer:
Lo primero es elevarnos nuestro privilegios para que nadie se nos resista. A partir de ahí tenemos dos métodos de matar. Uno es utilizar la función TerminateProcess con el handle del proceso y el otro es matar desde dentro, ejecutando de forma remota la función ExitProcess dentro de nuestra víctima. Bueno, aquí os lo dejo como curiosidad Código:
// Modo de empleo |
He visto por ahí que lo habitual en estos casos es abrir el proceso con: OpenProcess PROCESS_TERMINATE
Aquí hay un ejemplo pero sin utilización de privilegios, y aquí hay otro que si los utiliza, pero como puedes ver ambos abren el proceso con PROCESS_TERMINATE Por cierto seoane, has leído el tema de las patentes de procesos seguros... precisamente para evitar esto y otras muchas cosas ? |
Hombre Ardilla, una vez que nos elevamos los privilegios para que andar ajustando los permisos si tenemos garantizado PROCESS_ALL_ACCESS. Pero bueno, si se quiere ajustar, es verdad que no hacen falta todos los permisos, aunque habría que incluir los necesarios para poder obtener el nombre del ejecutable.
En cuanto a la patente, la he leído un poco por encima, pero no parece describir un método para hacerlo en windows, sino que describe como se debería de implementar un sistema operativo para tener procesos seguros. La verdad es que si se pudieran implementar procesos seguros, los procesos como winlogon.exe serian los primeros en serlo, y como ya quedo demostrado, con los permisos necesarios se puede inyectar código dentro de ellos. PD: Lo que me gustaría saber es si el proceso inmortal de roman se muere con alguno de los dos métodos. |
Cita:
Por ejemplo hay en mis procesos un exe de ZoneAlarm, concretamente el zlclient.exe que no se deja tocar. También estuve examinando el código de algunos firewall de SourceForge y utilizan esa técnica (CreateService) para permanecer como procesos protegidos o incluso como drivers. |
La franja horaria es GMT +2. Ahora son las 04:55:14. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi