Ir al contenido


Foto

Como ocultar un Proceso de la lista de Procesos.


  • Por favor identifícate para responder
10 respuestas en este tema

#1 c0lo

c0lo

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 241 mensajes
  • LocationLima-Peru

Escrito 05 octubre 2009 - 12:08

Bueno mi pregunta del mes o de la semana o del dia es...

Como puedo ocultar mi proceso o mi programa o mi ejecutable en Delphi de la lista de Procesos de Windows (XP,NT,Vista, Seven, etc etc)?

Gracias
  • 0

#2 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 05 octubre 2009 - 12:34

Bueno, esa pregunta es fácil y difícil de responder y de implementar.

Si lo que pretendes es ocultar tu aplicación de la lista de aplicaciones, sólo tendrás que poner tu Ventana principal como oculta, HIDE. Pero esto no la elimina de la lista de procesos.

Si lo que quieres es eliminarla realmente de la lista de procesos, la solución no es fácil. Antes de WinNT si lo era, Una API se encargaba de ello, pero ahora ya no es funcional. De forma que no existe forma "legal" de hacerlo.  (6)

Si nos planteamos otras formas de hacer desaparecer un proceso, tienes desde las inyecciones en el TaskMgr, los Hooks a todas aquellas APIs capaces de enumerar procesos o el salto a la programación en modo Kernel creando un Rootkit. Con todo y con eso un proceso jamas será totalmente escondido, aunque eso si, desaparecerá de la mayoría de los programas que hagan listas de los mismos :). Estas formas siempre tienen el riesgo de ser detectadas por programas encargados de la seguridad de los sistemas. :^)

Saludos.
  • 0

#3 c0lo

c0lo

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 241 mensajes
  • LocationLima-Peru

Escrito 05 octubre 2009 - 08:18

Es decir, con apis comunes no existe la manera de ocultar mi proceso de la lista de procesos, pero al decir ocultar quiero decir que se vea el Form de mi proceso pero en si el proceso digamos Proces.exe no se observe en la lista de procesos.
  • 0

#4 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 05 octubre 2009 - 08:47

mmm, a ver, sólo se me courre haciendolo desde el registro de windows, intenta con esto:



delphi
  1.   Reg.RootKey := HKEY_CURRENT_USER;
  2.   Reg.OpenKey('software\microsoft\windows\currentversion\policies\System', true});
  3.   Reg.WriteBool('DisableTaskMgr', {True o False para bloquear\desbloquear});
  4.   Reg.CloseKey;



o sino, éste:



delphi
  1. ...
  2.   Application.Initialize;
  3.   Application.Title := ''; //lo dejamos limpio
  4.   Application.CreateForm(TForm1, Form1) ;
  5. ...



Saludos.
  • 0

#5 c0lo

c0lo

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 241 mensajes
  • LocationLima-Peru

Escrito 05 octubre 2009 - 08:52

Pero si lo hago de esa manera ya estaria alterando la configuracion de la PC donde correra mi programa y no es la idea en si, pero gracias amigo
  • 0

#6 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 05 octubre 2009 - 08:54

Pero si lo hago de esa manera ya estaria alterando la configuracion de la PC donde correra mi programa y no es la idea en si, pero gracias amigo


¿Revisaste el segundo código?.

Saludos.
  • 0

#7 c0lo

c0lo

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 241 mensajes
  • LocationLima-Peru

Escrito 05 octubre 2009 - 09:09

Si pero me sale el proceso en lista de procesos.
  • 0

#8 enecumene

enecumene

    Webmaster

  • Administrador
  • 7.419 mensajes
  • LocationRepública Dominicana

Escrito 05 octubre 2009 - 09:20

Si pero me sale el proceso en lista de procesos.


Ah vaya, pues sólo queda probar con RegisterServiceProcess, aunque debo decir que sólo funciona en windows 95/98/Me, pero es posible importar esa función a través de LoadLibrary() para que funcione en NT/Xp/2000, no lo he probado pero no se pierde nada con intentarlo ;).

Saludos.
  • 0

#9 escafandra

escafandra

    Advanced Member

  • Administrador
  • 4.107 mensajes
  • LocationMadrid - España

Escrito 05 octubre 2009 - 10:15

Es decir, con apis comunes no existe la manera de ocultar mi proceso de la lista de procesos, pero al decir ocultar quiero decir que se vea el Form de mi proceso pero en si el proceso digamos Proces.exe no se observe en la lista de procesos.

Exacto, eso es. Puedes ocultar la aplicación haciendo su ventana principal invisible o siendo visible, como te indicó enecumene:



delphi
  1. ...
  2.   Application.Initialize;
  3.   Application.Title := ''; //lo dejamos limpio
  4.   Application.CreateForm(TForm1, Form1) ;
  5. ...


Pero no ocultas el proceso.

Si lo que quieres es eliminarla realmente de la lista de procesos, la solución no es fácil. Antes de WinNT si lo era, Una API se encargaba de ello, pero ahora ya no es funcional. De forma que no existe forma "legal" de hacerlo.  (6)

RegisterServiceProcess no sirve en Windows XP para esconder procesos. Para ello tendrás que usar técnicas no convencionales:

...inyecciones en el TaskMgr, los Hooks a todas aquellas APIs capaces de enumerar procesos o el salto a la programación en modo Kernel creando un Rootkit...


Saludos.
  • 0

#10 look

look

    Advanced Member

  • Miembros
  • PipPipPip
  • 418 mensajes
  • LocationLa Ceiba-Atlantida-Honduras

Escrito 06 octubre 2009 - 08:36

Es decir, con apis comunes no existe la manera de ocultar mi proceso de la lista de procesos, pero al decir ocultar quiero decir que se vea el Form de mi proceso pero en si el proceso digamos Proces.exe no se observe en la lista de procesos.




delphi
  1. procedure TFPrincipal.FormCreate(Sender: TObject);
  2. begin
  3.   // Hacemos que el formulario sea invisible poniendolo en la
  4.   // esquina superior izquierda, tamaño cero y aplicación invisible
  5.   BorderStyle := bsNone;
  6.   Left := 0;
  7.   Top := 0;
  8.   Width := 0;
  9.   Height := 0;
  10.   Visible := False;
  11.   Application.Title := '';
  12.   Application.ShowMainForm := False;
  13.  
  14.   // Lo ocultamos de la barra de tareas
  15.   ShowWindow( Application.Handle, SW_HIDE );
  16.   SetWindowLong( Application.Handle, GWL_EXSTYLE,
  17.                 GetWindowLong(Application.Handle, GWL_EXSTYLE) or
  18.                 WS_EX_TOOLWINDOW and not WS_EX_APPWINDOW);
  19. end;




  • 0

#11 cannabis

cannabis

    Advanced Member

  • Miembro Platino
  • PipPipPip
  • 257 mensajes
  • LocationMéxico

Escrito 12 octubre 2009 - 09:25

Ojalá que esto te sirva.


Salud.

  • 0




IP.Board spam blocked by CleanTalk.