SoloCodigo
Programación General => ASM (Ensamblador) => Mensaje iniciado por: Lucas05 en Jueves 25 de Mayo de 2006, 18:54
-
Hola,
Trabajo en una computadora con un procesador Pentium 4 y con S.O. WinXP. Y mi duda es:
Si tengo 2 teclados USB conectados a la misma computadora, ¿Como puedo diferencear de cual estan siendo presionadas las teclas?, ¿Es posible hacer esto mediante un programa escrito en lenguaje ensamblador?
Espero me puedan ayudar de algún modo. De antemano gracias!
Saludos.
-
:huh: :huh: :huh:
MMMMMMMM no se si funcione pero se me ocurre que puedes testear los puertos serie en este caso USB con los servicios de la interrupcion 14 y de esa forma obetner lo que hay en el buffer para cada teclado el problema que veo es que cuando se creo ASM ni siquiera existian los USB o eso creo en dado caso esperemos que Eternal conteste dado que es el experto en assembly, pero no pierdes nada con hacer la prueba
-
Las interrupciones de MS-DOS y la BIOS no sirven desde modo protegido. Esto mas que un problema de assembly es un problema de modo Kernel, podrias llegar a hacer un driver de tipo filtro para ver todas las teclas (un Keylogger) ...
-
Muchas gracias por sus respuestas, sin embargo mi duda aún persiste...
Ya escribí un par keylogers en asm y los tengo funcionando de manera adecuada. Lo que no he logrado hacer es diferenciar de cual teclado provienen las teclas presionadas, lo que necesito es por completo ignorar las que vienen de un teclado, es decir, que windows lo maneje de la manera que quiera, y las que vienen del otro teclado tomarlas para usarlas en mi aplicación. Eternal: a este tipo de controlador te refieres?... o que herramientas me recomiendas?
He buscado en internet si es posible tratar un puerto usb como un flujo de datos para poder manejarlo con CreateFile, Write y Read. Y aun cuando logro abrir el puerto usb al cual esta conectado el teclado, lo que no logro hacer, es leer la tecla presionada, pues antes que mi aplicación, windows lee esa tecla y limpia el buffer del teclado de modo que mi aplicación ya no lee nada. Esto último lo hice en vb6.
Por esto es que pensé que la solución se encuentra a bajo nivel y que con asm podría escribir algún programa que me funfionara...¿Ustedes que piensan?
Nuevamente muchas gracias por sus comentarios.
Saludos a todos!
-
¿Esos keyloggers estan escritos en 32/64 bits o en 16? ¿Usan la API de Windows? Cuando hablo de controlador de tipo filtro me refiero a eso ... un driver que se apile sobre la clase del teclado.