PDA

Ver la versión completa : creando mi keyloger en c



avinagra_o
19-06-2007, 00:10
hola saludos a tod@s, llevo meses intentando programar un keyloger en lenguaje c.
Mi intencion es que el programa cree un log y lo envie por ftp.
De momento consigo que me loguee las letras y algun simbolo, pero necesito perfeccionar varias cosas.
La primera y mas importante es saber si hay una funcion semejante al sleep de linux que haga que no me consuma mucho procesador al ejecutarse el keyloger.
La segunda es como puedo enviar el fichero via ftp que crea mi programa de forma trasparente al usuario,es decir, me conecte con servidor me introduzca nombre de usuario y password y envie el fichero log.
Muchas gracias de antemano !!!

bleenk
24-06-2007, 23:07
me parece que en las librerias standard de C no hay funciones del tal tipo. aun asi seguro que algun freak se las ha currado. es cuestion de buscarlas :S

hystd
25-06-2007, 01:46
Para la primera parte, no entiendo muy bien lo de "consumir mucho procesador", la función sleep() detiene la ejecución normal de un programa hasta que transcurre los milisegundos que pasamos como parametro, el resultado es una sensación de bloqueo de la aplicación que llama a esta función.

Si te refieres a ésto, puedes crear un hilo de ejecución (Thread) y llamar a esta función desde alli... Esto se puede hacer de muchas maneras, pero no voy a enrollarme jejeje.

En cuanto a lo segundo, hay que distinguir dos casos: que ya tengas un servidor FTP donde subir el log, o que no lo tengas...

Si estamos en el primer caso, tan sólo tienes que implementar un cliente (dentro de tu keylogger) que a través de los sockets, establezca una conexión con el servidor por el puerto 21, y protocolo TCP (los paquetes llegan tal y como se mandan).

Si es el 2º caso, no dispones de un servidor donde subir la información, tendrías que implementarlo tu, y hacerlo correr en tu sistema. (Si no lo quieres implementar, puedes descargarte algunos ya hechos o si lo haces correr en un Windows puedes intalar el Internet Information Server IIS, o si es en Linux el wuftp o el proftpd, por ejemplo).

En cualquier caso, sólo tendrías que implementar en tu keylogger el "cliente" que se comunique con un sistema remoto (tu PC, a donde se va a enviar la información), o a algun servidor FTP ya disponible.

Para hacer el cliente lo mas razonable es usar Sockets. En C dispones de la librería "socket.h". (Si estas haciendolo bajo Windows, puede llamar a las funciones de Winsock32.dll).

el fichero socket.h contiene las estructuras de datos y funciones necesarias para trabajar con conexiones.

Un saludo

chico1988
25-06-2007, 09:06
te digo una cosa podrias llevar como ejemplo el perfect keylogger o cualquiera y ver como funciona. Entronces vas a tu keylogger y lo adaptas. Buneo espero que te sirva ...