Programa persistente en C#

Iniciado por Kaxperday, 30 Mayo 2015, 18:33 PM

0 Miembros y 1 Visitante están viendo este tema.

Kaxperday

Hola he visto que hay troyanos que al cerrarlos se vuelven a ejecutar pasado un tiempo, ¿como es eso posible?, ¿cómo puedo implementarlo?

¿Será otra aplicación que lo ejecuta no? ¿2 programas en uno entonces?

Saludos.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.

Eleкtro

#1
Quizás KuBox conozca alguna otra metodología más apropiada, ya que lo mio no es el diseño de virus/troyanos, pero te lo comento igual...

Una manera de hacerlo sería desarrollando un servicio de Windows, instalarlo y mantener el servicio escuchando la actividad del proceso (ya sea mediante técnicas IPC cómo sockets o un mapeo de memoria compartida, o simplemente realizando una consulta a la lista de procesos actual Process.GetPRocesses() ), si se detecta inactividad (es decir, si no se encuentra el proceso en ejecución) iniciarlo de nuevo.
Esto sería practicamente lo mismo que mantener 2 procesos en ejecución cómo sugeriste, pero con sus ventajas (y su elegancia xD).

Creating a Windows Service Application - MSDN
A basic Windows service in C# - MSDN Code
+
➢  Interprocess Communications (IPC) - MSDN

Saludos!








Kaxperday

#2
Gracias Elektro como siempre, parece que además de tu opción que es abrir un servicio que compruebe si el programa está o no en ejecución, he encontrado otra opción que consiste en inyectar threads a otros procesos para que comprueben si mi programa está o no en ejecución y haga algo al respecto, si inyectaría eso a svchost.exe funcionaría sin necesidad de servicio, el problema es ¿realmente funcionará? y ¿cómo se hace? XD

Bueno, ya me las intentaré apañar para el resto.

http://www.codeproject.com/Articles/4610/Three-Ways-to-Inject-Your-Code-into-Another-Proces

Saludos y gracias.
Cuando el poder económico parasita al político ningún partido ni dictador podrá liberarnos de él. Se reserva el 99% ese poder.