Título: Programa persistente en C# Publicado por: Kaxperday en 30 Mayo 2015, 18:33 pm 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. Título: Re: Programa persistente en C# Publicado por: Eleкtro en 30 Mayo 2015, 20:23 pm 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 (https://msdn.microsoft.com/en-us/library/zt39148a%28v=vs.110%29.aspx) ➢ A basic Windows service in C# - MSDN Code (https://code.msdn.microsoft.com/windowsapps/CSWindowsService-9f2f568e) + ➢ Interprocess Communications (IPC) - MSDN (https://msdn.microsoft.com/en-us/library/windows/desktop/aa365574%28v=vs.85%29.aspx) Saludos! Título: Re: Programa persistente en C# Publicado por: Kaxperday en 31 Mayo 2015, 13:15 pm 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. |