Título: Problema con apis wininet Publicado por: Spider-Net en 29 Agosto 2007, 19:52 pm Buenas, una vez más estoy aquí con un problemilla, bueno una duda existencial que tengo :O a ver si me la podéis resolver.
Estoy programando una aplicación, se le puede llamar troyano o como sea. La cosa es que por los problemas de conexiones con routers, firewalls y demás, el troyano funciona de la siguiente forma. Un archivo PHP se aloja en cualquier server junto a un log.txt. El troyano envia los datos por GET osea http://miserver.com/ miarchivo.php?comando=comando a ejecutar Este archivo.php captura el comando y lo deja en el log.txt El server va descargando el archivo log.txt y según el comando que tenga, lo ejecuta. Bien pues lo hago con la api wininet para ahorrar dependencias, ya sé que puedo hacer eso con Winsock y con Inet pero no quiero dependencias para el server de un troyano. Bueno pues el código en general funciona todo bien, tarda apenas 1 ó 2 segundos en realizarse todo el proceso pero la cosa es que el server para comprobar que comando tiene que ejecutar tiene que descargar el archivo log.txt continuamente, lo hago con un timer, pero esque al tener que conectar tantas veces se ralentiza y no quiero que se consuman tantos recursos... Me gustaría que conectase y una vez abierta la conexión el resto de veces descargase el archivo puesto que la conexión no la cierro, pero no funciona...alguien podría decirme como arreglarlo?, esque si obligadamente tengo que conectar cada ve que quiero recargar el archivo, osea cada segundo, puff, eso lo va a notar el rendimiento del pc, consume más recursos... se nota considerablemente... El código es el siguiente, a ver si me podéis ayudar. Código
Como podéis ver la parte importante es la deltimer que es la que tiene un valor x=true, para que la primera vez haga el proceso completo pero luego la pone en false para que el timer solo descargue el archivo puesto que la conexión supuestamente está abierta porque yo no la cerré. Quizás me estoy equivocando y esto que quiero hacer no es factible, pero si es así aclarádmelo por favor, porque me estoy comiendo el coco demasiado xDD Saludos, y gracias de antemano. Título: Re: Problema con apis wininet Publicado por: cobein en 29 Agosto 2007, 20:24 pm Un a cosa que podes hacer es poner Sleep 100 junto con cada DoEvents, esto ayuda a no cargar tanto el sistema, parar el timer "Timer1.Enabled = False al entrar en Timer1_Timer y reanudalo antes de salir, por que si el proceso que esta dentro tarda mucho el timer se va a disparar nuevamente antes de que tu funcion termine. Con respecto a lo demas, mantener la conexión abierta no me parece buena idea y por ultimo, si no tienes nada para detener or pasar los Firewalls este programa posiblemente sea bloqueado. Si lo que vas a hacer es nada mas que eso, una idea simple es abrir una instancia de Internet Explorer de manera oculta, y usar el shell para manejarla, como Iexplore esta habilitado en casi todas las maquinas no habria problema.
Título: Re: Problema con apis wininet Publicado por: Spider-Net en 29 Agosto 2007, 21:07 pm Jejeje no, no saltan los firewalls porque la llamada es a una web, es igual que visitar una página web cualquiera, como si abres el internet explorer y escribes www.unserver.com/unarchivo.txt. Por eso no salta el firewall y con mi programa tampoco salta, no porque yo lo digo,sino porque está probado, y va bastante bien.
Bueno voy a probar a hacer esas cosas que me dijiste a ver si con esos cambios se ralentiza menos la conexión, gracias y saludos :P |