elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con keylog.. porfavor..
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con keylog.. porfavor..  (Leído 6,238 veces)
Proxy Lainux

Desconectado Desconectado

Mensajes: 187



Ver Perfil
ayuda con keylog.. porfavor..
« en: 24 Febrero 2008, 23:05 pm »

hola

estoy haciendo un keylogger en C... pero tengo una duda.. con este codigo puedo capturar las teclas presionadas... pero como le puedo hacer para que al apretar SHIFT cambie de minusculas a mayusculas y viceversa?... ya que si hago esto

Código:
{
            caracter+=32;
            printf("%c",caracter);
        }

se escriben las minusculas.. pero si kito

Código:
            caracter+=32;

Se escriben como mayusculas.. pero no logro saber como puedo lograr que se escriban minusculas o mayusculas dependiendo de la tecla Shift... y eso me lleva a la duda de como se le hace... para que al apretar la tecla de "Bloq Mayus" o "CapsLock" como le kieran decir... se escriban las mayusculas... alguien tiene alguna idea?

Código:

#include <stdio.h>
#include <windows.h>
#define OK -32767

int main()
{
    int caracter;
    do
    {
        for(caracter=65;caracter<=90;caracter++)
        {
        if(GetAsyncKeyState(caracter) == OK)
        {
            printf("%c",caracter);
        }
        Sleep(10);
      }
    }
While(1<2);
return 0;
}

espero me puedan ayudar.. gracias


« Última modificación: 25 Febrero 2008, 07:16 am por Proxy Lainux » En línea

juas juas juas

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #1 en: 25 Febrero 2008, 04:15 am »

La mejor manera que tienes para hacer eso es capturar una a una las pulsaciones del teclado (con getch o algo de ese estilo), y luego mirar el caracter ascii y comprobar a si esta entre el 65 y 90 es mayuscula y si esta entre 97 y 122 estonces es una minuscula. Cada vez que vayas leyendo vas guardando en la memoria y en un momento determinado vuelcas al fichero, y asi no estas grabando en el fichero continuamente.

Espero que te ayude.


En línea

Proxy Lainux

Desconectado Desconectado

Mensajes: 187



Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #2 en: 25 Febrero 2008, 05:33 am »

hola

a ver si entendi... antes de colocar el caracter con printf... seria mejor que mande el caracter pulsado a un getch y verifike a que rango se encuentra.. si esta entre los 65-90 o 97-122.. y luego ya lo coloco en un printf para ver que letra se pulso..

es eso?.. espero que si...

bueno de cualquier forma gracias...

nos vemos  ;D
En línea

Proxy Lainux

Desconectado Desconectado

Mensajes: 187



Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #3 en: 25 Febrero 2008, 07:06 am »

alguien podria chechar el codigo y decrime porke cuando oprimo shift no importa si esta en minisculas o mayusculas.. siempre me sigue apareciendo como ascii 65,66...etc... ya que al parecer solo me funcionan las mayusculas porke cuando cambio el for por for(caracter=97;caracter<=122;caracter++) no me aparecen las minusculas.. siempre me aparecen mayusculas... y si oprimo algun numero del NUMPAD... me aparecen las minusculas... que estoy haciendo mal...

espero me puedan ayudar.. tambien encontre que si hago esto

int main()
{
   
    do
    {
        if(GetAsyncKeyState(65) == OK)
        {
            printf("A");
        }

    }

podria hacer el keylogger mas universal.. sin importar en que idioma este el teclado... el problema sera que tendria hacer muchisimos if's... y siento que seria lo mismo... pero que piensan?...

esper me puedan ayudar

gracias
En línea

botella

Desconectado Desconectado

Mensajes: 80


Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #4 en: 25 Febrero 2008, 08:48 am »

este experimento de keylogger funciona pero solo si dejo la tecla apretada màs de lo normal, sino no toma la letra.
En línea

Proxy Lainux

Desconectado Desconectado

Mensajes: 187



Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #5 en: 25 Febrero 2008, 20:09 pm »

hola

es que no entiendo que estoy haciendo mal... ya que por  ejemplo cuando executo el programa y abro el block de notas.. al escribir en el block si logro escribir cualquier cosa... pero no puedo hacer que escriba minuculas y apretando shift que escriba mayusculas...

la unica forma que logro escribir en minuculas.. es haciendo esto...

caracter+=32;

y si se lo kito escribo con mayusculas...

si hacen esto..

printf("%d",caracter);

se daran cuenta que si escriben les aparecera el numero ascii que seria 65,66..etc... y si aprietan shift siguen apareciendo los numeros 65,66..etc... no hay algun cambio al apretar shift

pero si hacen esto...

printf("%c",caracter);

y si oprimen los numeros que estan en la parte derecha del teclado.. les apareceran las minusculas..a,b..etc

y eso es raro.. alguien me puede decir que estoy haciendo mal... o acaso de plano esta mal hecho el codigo que estoy haciendo... si esta mal.. me podrian explicar como hacerlo mejor...

he estado leyendo varios codigos d keylogger solo que todos son codigos completos que capturan las teclas y crean un log.. etc... y me confunden un poco... pero al intentar hacer uno.. hice ese codigo.. pero creo que no esta bien hecho...

espero me puedan ayudar... gracias
En línea

Proxy Lainux

Desconectado Desconectado

Mensajes: 187



Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #6 en: 28 Febrero 2008, 00:15 am »

hola

tengo un problema, ya me di cuenta que si hago esto

caracter+=32;

escribo con minusculas...

y por ejemplo si escribo en ascii 48.. me aparece el numero cero, pero si a 48 le resto

caracter-=11;

me aparecen los caracteres especiales...

pero como puedo utilizar los mismos numeros dos veces.. en el codigo que escribi al principio utilizo de 65 a 90 en el for... y hago lo de caracter+=32.. para escribir en minusculas y de 48 a 57 para los numeros... y si hiciera esto.. caracter-=11.. lograria utilizar los caracteres especiales.. pero no logro hacerlo porke todos los numeros de 65 a 90 y 48 a 57 ya estan siendo utilizados

alguien sabria como hacer eso.. ya que o utilizo mayusculas o utilizo minusculas... y con los numeros y caracteres especiales me pasa igual...

ya intente que si aprieto VK_SHIFT... escribiera mayusculas... o caracteres especiales.. pero no he logrado hacerlo... o no he sabido hacerlo

espero alguien me pueda ayudar.. porke encontre un codigo en C pero tampoco ese codigo se puede hacer lo que necesito... alguien que conozca algun codigo que si pueda diferenciar de cuando se escriban minusculas y al apretar shift  las mayusculas.. o alguien que sepa hacer eso, porfavor diganme, ya que lo tengo kasi avanzado.. solo me faltaria aprender a guardarlo en todo un log.. y enviar el log a alguna parte...

en visual basic se utiliza una funcion bool para saber si esta oprimido shift.. pero aun no se interpretar codigos de visual basic en C... aunke solo hace un bool y si vbShift esta oprimido cambia las letras en minusculas o mayusculas... pero aun soy un poco torpe en C..jeje

espero una respuesta.. gracias  ;D
En línea

Proxy Lainux

Desconectado Desconectado

Mensajes: 187



Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #7 en: 3 Marzo 2008, 04:40 am »

hola

intente hacer esto.. pero tuve un problema.. tengo que oprimir shift y una tecla al mismo tiempo.. sino no me funciona... como puedo hacer que mientras este shift oprimido las teclas se conviertan en mayusculas o minisculas?...

ya intente con while pero creo que n supe como.. porke tampoco me funciono...

esto es lo que hice... alguien podria corregirlo y ayudarme.. porfavor

Código:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define OK -32767

int main()
{
    int lain;

    do
    {
    if(GetAsyncKeyState(VK_SHIFT) == OK)
    {
        for(lain=65;lain<=90;lain++)
        {
            if(GetAsyncKeyState(lain) == OK)
            {
            if(lain>=65 && lain<=90)
            {
        printf("%c",lain);
    }
    }
}
}
}
    while(1<2);
    return 0;
}

y si hago esto... si se puede pero funciona alreves... en vez de que al mantener oprimido shift.. la tecla oprimida aparezca...es al reves... tengo que mantener una tecla oprimida y al oprimir shift aparece la tecla...

Código:
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
#define OK -32767

int main()
{
    int lain;

    do
    {
    while(GetAsyncKeyState(VK_SHIFT) == OK)
    {
        for(lain=65;lain<=90;lain++)
        {
            if(GetAsyncKeyState(lain) == OK)
            {
            if(lain>=65 && lain<=90)
            {
        printf("%c",lain);
    }
    }
}
}
}
    while(1<2);
    return 0;
}

espero su respuesta

gracias...
« Última modificación: 3 Marzo 2008, 19:52 pm por Proxy Lainux » En línea

juas juas juas

Desconectado Desconectado

Mensajes: 136


Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #8 en: 3 Marzo 2008, 14:23 pm »

A ver, para mi te estas liando mucho (o eso o no te entiendo lo que quieres hacer).

Te pongo un codigo simple para reconocer mayusculas y minusculas introducidas por teclado:

Código
  1. #include <stdio.h>
  2.  
  3. int main()
  4. {
  5.    char tecla;
  6.    printf("introduce una letra:\n");
  7.    tecla=getche();
  8.    if(tecla>=97 && tecla<=122)
  9.    {
  10.         printf("\nEs minuscula\n");
  11.         // Aqui guardas en fichero o haces lo que quieras
  12.    }
  13.    if(tecla>=65 && tecla<=90)
  14.    {
  15.         printf("\nEs mayuscula\n");
  16.         // Aqui tambien guardas en fichero o lo que te apetezca
  17.    }
  18.    fflush(stdin);
  19.    getche();
  20.    return 0;
  21. }
  22.  

Yo creo que esto es lo que andas buscando, pero te estas liando bastante llamando a librerias que no necesitarias (cuanto mas simple sea el programa, mejor) porque si solo quieres saber si introducen mayusculas o minusculas es simple, pero si quieres saber si la tecla shift esta pulsada o no eso ya es otro asunto.
En línea

Proxy Lainux

Desconectado Desconectado

Mensajes: 187



Ver Perfil
Re: ayuda con keylog.. porfavor..
« Respuesta #9 en: 3 Marzo 2008, 19:48 pm »

hola

casi.. casi... el problema es que con getche.. creo que tengo que escribir en la consola no?... pero hay alguna forma de hacerlo con GetAsyncKeyState?...

porke lo que quiero hacer es que si esta oprimido la tecla shift.. que escriba en mayusculas... el problema es que no se como hacer eso...

ya intente haciendolo de la forma en como poste anteriormente los codigos.. pero me funciona al reves... si oprimo shift y despues una letra... no pasa nada... pero si oprimo una letra y despues oprimo shift.. me aparece la letra...

y por cierto... solo uso dos librerias.. stdio.h y windows.h... solo que estaba intentando hacer otra cosa... y se me olvido borrarlo.. jeje  :¬¬

bueno.. espero me puedan ayudar... gracias..

salu2  ;D
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda con keylog
Análisis y Diseño de Malware
147852 2 3,000 Último mensaje 17 Julio 2014, 09:02 am
por scott_
Ayuda con Keylog
Análisis y Diseño de Malware
geluze 5 3,029 Último mensaje 4 Septiembre 2014, 11:13 am
por JACX1994
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines