Фильтр клавиатуры: проблема с USB-клавой

Тема в разделе "WASM.NT.KERNEL", создана пользователем Llirik, 15 янв 2011.

  1. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    К PS/2 клавиатуре фильтр подключается, а к USB нет(
    Код (Text):
    1. ..........
    2. CCOUNTED_UNICODE_STRING "\\Device\\KeyboardClass0", g_usTargetDeviceName, 4
    3. .......
    4. invoke IoCreateDevice, pDriverObject, sizeof FiDO_DEVICE_EXTENSION, addr g_usDeviceName, FILE_DEVICE_KEYBOARD, \
    5.                                               0, TRUE, addr KeyDeviceObject
    6. .if eax == STATUS_SUCCESS
    7.          invoke IoCreateSymbolicLink, addr g_usSymbolicLinkName, addr g_usDeviceName
    8.  
    9.          .if eax == STATUS_SUCCESS
    10.      invoke IoGetDeviceObjectPointer, addr g_usTargetDeviceName, FILE_READ_DATA, \
    11.                                       addr pTargetFileObject, addr pTargetDeviceObject
    12.      .if eax == STATUS_SUCCESS
    13.         invoke IoAttachDeviceToDeviceStack, KeyDeviceObject, pTargetDeviceObject   
    14.                 .if eax != NULL
    15.                     mov edx, eax
    16.  
    17.                     ; Fill filter device object extension
    18.  
    19.                     mov ecx, KeyDeviceObject
    20.                     mov eax, (DEVICE_OBJECT ptr [ecx]).DeviceExtension
    21.                     assume eax:ptr FiDO_DEVICE_EXTENSION
    22.                     mov [eax].pNextLowerDeviceObject, edx
    23.                     push pTargetFileObject
    24.                     pop [eax].pTargetFileObject
    25.                     assume eax:nothing
    26.  
    27.                     assume edx:ptr DEVICE_OBJECT
    28.                     assume ecx:ptr DEVICE_OBJECT
    29.  
    30.                     mov eax, [edx].DeviceType
    31.                     mov [ecx].DeviceType, eax
    32.  
    33.                     mov eax, [edx].Flags
    34.                     and eax, DO_DIRECT_IO + DO_BUFFERED_IO + DO_POWER_PAGABLE
    35.                     or [ecx].Flags, eax
    36.                     and [ecx].Flags, not DO_DEVICE_INITIALIZING
    37.                     assume edx:nothing
    38.                     assume ecx:nothing
    Что можете посоветовать?
     
  2. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Никто на этом форуме чтоли не знает, как работать с USB-клавиатурой в режиме ядра?
     
  3. RET

    RET Well-Known Member

    Публикаций:
    17
    Регистрация:
    5 янв 2008
    Сообщения:
    789
    Адрес:
    Jabber: darksys@sj.ms
    ага кейлогеры не в почёте ныне на халяву - тем более универсальные
     
  4. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    471
    Так я же пишу не кейлогер) в итоге пользователь будет сам управлять этим драйвером