Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   API de Windows (https://www.clubdelphi.com/foros/forumdisplay.php?f=7)
-   -   Ocultar la aplicacion del Ctrl+Alt+Del en Windows XP y 2000 (https://www.clubdelphi.com/foros/showthread.php?t=61881)

JoAnCa 25-11-2008 21:47:19

Ocultar la aplicacion del Ctrl+Alt+Del en Windows XP y 2000
 
Buscando he encontrado como hacerlo, pero en los trucos de Clubdelphi hay uno que especifica que no sirve en XP

En trucomania hay otro metodo

Código Delphi [-]
 function AsignaProcedure(EnQueDll, Procedimiento: string):TFarProc;
  var
    MangoLib    : THandle;

 begin
  Result:=nil;
  MangoLib:=GetModuleHandle(Pchar(EnQueDll));
  if MangoLib <> 0 then
    Result:=GetProcAddress(MangoLib,Pchar(Procedimiento));
  if (MangoLib=0) or (Result=nil) then
    raise Exception.create( Procedimiento+' en ' + EnQueDll + ' no encontrado.');
 end;

begin
  try
    @RegisterServiceProcess:=AsignaProcedure('KERNEL32.DLL', 'RegisterServiceProcess');
  except
    ShowMessage('Error, funcion RegisterServiceProcess no encontrada...');
  end;
end;

Pero tampoco funciona en Win XP, me da el error de que RegisterServiceProcess no se encuentra en KERNEL32.DLL

De que forma pudiera ocultar mi aplicacion del Ctrl+Alt+Del en Windows XP?

cHackAll 26-11-2008 00:52:16

Hola

JoAnCa 27-11-2008 15:21:58

No me sirvio
 
Hola Chackall, gracias por el vinculo que me diste, pero eso lo que hace es cambiarle el nombre al proceso, y no ocultarlo que es lo que necesito.

Lo que hace falta es que se oculte de la lista de tareas del Ctrl+Alt+Del, para que no vean que se esta ejecutando, y no le den finalizar tarea.

Es decir, necesito que mi programa Monitor, se ejecute de forma invisible para el usuario, pues si este es "listo", ve el programa en la lista de tareas, y sabe que se esta ejecutando un programa que tal vez no le "convenga" y me lo cierra

El objetivo es monitorear el aprovechamiento de la PC, y que el usuario no se de cuenta, porque si le esta dando un "mal uso" a la PC, cierra el soft Monitor y hace lo que quiera :o sin que nadie se entere

Espero que haya alguna forma en XP, pues en Win98 se puede hacer.

JoAnCa 27-11-2008 17:46:52

como dice DarkByte

Cita:

De la lista de procesos no lo vas a poder quitar a no ser que inyectes una dll en todos los procesos, y, sobre todo, en taskmgr.exe.... de la lista de Aplicaciones es fácil quitarlo, tal y como te han dicho otros foreros.
:D
(Lo unico que vi en ese hilo esta en C++ y lo que hace es ocultar de la barra de tareas.)

Como lo quito de la lista de Aplicaciones, que es lo que realmente quiero, he buscado pero parece que no busco bien porque no lo he encontrado todavia.

Ocultarlo de la lista de procesos no me es tan importante

roman 27-11-2008 18:10:11

¿Y por qué no simplemente impides el acceso al administrador de tareas? Puedes hacerlo poniendo la clave

DisableTaskMgr REG_DWORD 0x1

en

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System

// Saludos

escafandra 27-11-2008 18:41:47

Cita:

Empezado por Jose Caceres (Mensaje 328370)
Como lo quito de la lista de Aplicaciones, que es lo que realmente quiero, he buscado pero parece que no busco bien porque no lo he encontrado todavia.

Pues para quitarlo de la lista de aplicaciones basta con hacerlo invisible, es decir con poter a false la propiedad Visible del Form principal. Tambien puedes colocar Application.ShowMainForm := false; al crear el Form principal.

En la lista de procesos, como ya te han indicado, es más complicado. Tal vez puedas usar el código de seoane pero poniendo mensages para borrar el item de tu proceso, no para cambiar el nombre. Pero lo mas efectivo es un Hook a varias APIs. No es sencillo. Puedes hacer un Hook a la API UpdateWindow inyectando código al TaskManager, y aquí eliminar el Item que te interese (tu proceso). Estudia los mensajes de los ListView de Windows. Si quieres bloquear otros visores de taréas, entonces deberás realizar, también, un Hook a la API Process32NextW del programa en cuestión. Claro que la cosa se complica porque deberás tener inyectado al explorer.exe en la API CreateProcess y hasta el mismísimo winlogon.exe, para detectar cuendo de ejecuta el programa que quieres bloquear.

Saludos.

JoAnCa 28-11-2008 13:55:34

Muchas gracias por sus respuestas

Roman
Cita:

¿Y por qué no simplemente impides el acceso al administrador de tareas? Puedes hacerlo poniendo la clave

DisableTaskMgr REG_DWORD 0x1

en

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\System
No quisiera desabilitar el Administrador de tareas, pues si el usuario necesita matar otro proceso que se le quede colgado, no podria hacerlo.

escafandra

Pues probare lo que me dices, para la mayoria de los usuarios (a los que va dirigido el soft), al no verlo en la lista de aplicaciones no lo buscan en los procesos. Y para los que SI buscan en lo procesos, ya tengo la forma de protegerlo para que no lo "maten", lo encontre aqui mismo en el foro :)

casacham 08-02-2009 05:52:02

Estaria bueno que publiques
 
Hola amigo, estaria bueno que publiques como evitar que maten el proceso. Desde ya gracias por hacerlo

cHackAll 08-02-2009 19:49:47

Cita:

Empezado por casacham (Mensaje 337436)
Hola amigo, estaria bueno que publiques como evitar que maten el proceso. Desde ya gracias por hacerlo

:rolleyes:

alquimista 10-02-2009 19:04:57

como curiosidad. Casi todo el mundo centra la atención en el task manager.
Yo soy uno mas interesado en evitar que maten el proceso.
En mis devaneos por la webaraña o telaweb lo poco que he visto es demasiado complicado. Injección de API que a veces van y otras veces hacen cosas raras en el sistema, rootkits que detectan los AVirus.
madcodeHook de madshi. (Con un ejemplo para evitar la eliminación del proceso)
afxCodeHook (de un famoso creador de troyanos, creo)

Todo esto es muy interesante y complicado a la vez.

Bueno. Me estoy desviando un poco...

Como decia el task manager es uno mas de la lista de mataprocesos que hay y quizas es el mas malo.
Por ejemplo está el taskinfo (que elimina procesos y tareas del proceso) y encontre un programa que tiene, me parece, unas 12 o mas formas diferentes de matar un proceso.

Vamos que hasta si se pone alguien pesado y quiere matar el proceso lo va a conseguir, yo que se usando un livecd, entrando en modo a prueba de fallos, etc...

A ver si tengo tiempo y pruebo el tip de chackall

Siento haber aburrido pero tenia ganas de filosofar.

Un saludo a todos

alquimista 10-02-2009 23:20:51

CHackAll, funciona ok...

Una pregunta...con respecto al tip para evitar que terminen el proceso.
Mi app necesita privilegio de SeDebugPrivilege, ¿puedo añadirlo solo para mi..?

Un saludo

cHackAll 11-02-2009 20:44:59

Cita:

Empezado por alquimista (Mensaje 337716)
...Mi app necesita privilegio de SeDebugPrivilege, ¿puedo añadirlo solo para mi..?

Puedes usar otras credenciales con dicho privilegio habilitado, o habilitarlo temporalmente, "reiniciar" tu aplicacion y volverlo a deshabilitar,...

Saludos


La franja horaria es GMT +2. Ahora son las 16:57:08.

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