1. Если вы только начинаете программировать на ассемблере и не знаете с чего начать, тогда попробуйте среду разработки ASM Visual IDE
    (c) на правах рекламы
    Скрыть объявление

экранная клавиатура

Тема в разделе "WASM.NT.KERNEL", создана пользователем BelowZero, 27 дек 2011.

Статус темы:
Закрыта.
  1. XshStasX

    XshStasX New Member

    Публикаций:
    0
    Регистрация:
    9 авг 2008
    Сообщения:
    992
    kejcerfcrv
    Расскажешь в чем корректность?
     
  2. kejcerfcrv

    kejcerfcrv New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2011
    Сообщения:
    320
    XshStasX
    Да. Нужно посылать/получать/фильтровать мессаги в шадове. Но этому мешает системная защита(а мб и аверская) хз, эта вот часть и не понятна.
     
  3. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    есть окно, в котором игнорируется большинство API функций. программный ввод не работает. как я понял, драйвер пониже и можно создать драйвер, который имитирует нажатия клавиш как-бы от реального физического устройства. защищённое окно должно воспринять команду от драйвера и принять её. за 500 руб я бы сам сделал. на vb6 я такую прогу сделаю за 50 руб, много сил не нужно, только знания
     
  4. kejcerfcrv

    kejcerfcrv New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2011
    Сообщения:
    320
    И какого уровня драйвер, тоесть как он функционирует ?
     
  5. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    драйвер для физический устройств(мыши клавы), который "нажимает" не то, что нажато на реальной клаве, а то, что говорю ему я в ехе проекте
     
  6. kejcerfcrv

    kejcerfcrv New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2011
    Сообщения:
    320
    BelowZero
    Да не ваш, а тот вредоносный.
     
  7. l_inc

    l_inc New Member

    Публикаций:
    0
    Регистрация:
    29 сен 2005
    Сообщения:
    2.566
    BelowZero
    Контроллер PS/2. Обратите внимание на команду D2. Знаний нужно минимум, кода и времени тоже минимум. При благоприятных обстоятельствах (например, наличие шаблона драйвера) работы на полчаса.

    А Llirik, кстати, годами решает задачи двухчасовой сложности. В частности из-за того, что от си и английского нос воротит. Ему, видите ли, ещё меньше хочется их изучать из-за того, что их советуют.
     
  8. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    l_inc
    я знаю, что код, в принципе, не сложный, но на освоение хотя бы синтаксиса Си уйдёт неделя... можете помочь? на рабочем коде будет легче осваивать азы программирования драйверов
     
  9. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    просто не хотел отвлекать людей) ведь возникнет много вопросов по созданию... эх. чтож, начнём опрос)
     
  10. kejcerfcrv

    kejcerfcrv New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2011
    Сообщения:
    320
    BelowZero
    Избежать ответа на вопрос не значит его решить. Почему то мне начало казаться что вам в комерс.
     
  11. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    kejcerfcrv
    на какой вопрос? не очень вас понимаю...
     
  12. kejcerfcrv

    kejcerfcrv New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2011
    Сообщения:
    320
  13. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    вредоносный что? ничего вредоносного нет, есть только окно, защищённое(перехватывающее и блокирующее любые имитации). в него нужно посылать нажатия программно. на пользовательском уровне все функции перехватываются,я надеялся, что функции напрямую от драйвера не будут...
     
  14. kejcerfcrv

    kejcerfcrv New Member

    Публикаций:
    0
    Регистрация:
    16 дек 2011
    Сообщения:
    320
    BelowZero
    А вы есчо утверждаете что я наркоман. Не согласен!11)
     
  15. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    kejcerfcrv
    я утверждаю? мсье, вы меня с кем-то путаете + я окончательно перестал вас понимать)
     
  16. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    425
    я выслал BelowZero
    то , что он просил в данном случае, не получив от него ни копейки .вот те строчки,которые он просил
    Код (Text):
    1. ключевые строки ехе
    2.  
    3.  
    4. CTL_CODE macro DeviceType,Function,Method,Access
    5.     exitm <( ( ( DeviceType )  shl  16 )  or  ( ( Access )  shl  14 )  or  ( ( Function )  shl  2 )  or  ( Method ) ) >
    6.     endm
    7. DEVICE_TYPE_FROM_CTL_CODE macro ctrlCode
    8.     exitm <( ( ( ctrlCode  and  0ffff0000h ) )  shr  16 ) >
    9.     endm
    10. FILE_DEVICE_UNKNOWN EQU 00000022h
    11. METHOD_BUFFERED EQU 0
    12. FILE_ANY_ACCESS EQU 0
    13. IOCTL_rem equ CTL_CODE(FILE_DEVICE_UNKNOWN, 802h, METHOD_BUFFERED, FILE_ANY_ACCESS)
    14.  
    15. .data
    16. hDevice HANDLE ?
    17. Scancod db 22h, 00, 23h, 00, 30h, 00, 20h, 00, 14h, 00, 31h, 00 ; это слово "привет"
    18.  
    19. .code
    20. local dwBytesReturned:DWORD
    21. invoke CreateFile, $CTA0("\\\\.\\DeviceSymbolicName"), GENERIC_READ + GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0  
    22.     .if eax == INVALID_HANDLE_VALUE
    23. ;;;;;;;ошибка
    24. .endif
    25.   invoke DeviceIoControl, hDevice, IOCTL_rem, \
    26.                                              addr Scancod, sizeof Scancod, \
    27.                                              NULL , 0, \
    28.                                              addr dwBytesReturned, NULL
    29.  .if ( eax == 0 ) && ( dwBytesReturned == 0 )
    30. ;;;;;;;ошибка
    31. .endif
    32.  
    33.  
    34. строки обработки IOCTL драйвером
    35.  
    36.  
    37. .data
    38.     UnitId              WORD    ?
    39.     MakeCode            WORD    ?
    40.     Flags               WORD    ?
    41.  
    42. kInputDataStart PKEYBOARD_INPUT_DATA  offset UnitId
    43. kInputDataEnd PKEYBOARD_INPUT_DATA  offset UnitId + 12
    44. kInputDataConsumed PULONG  offset kkInputDataConsumed
    45. kkInputDataConsumed dd 0
    46.  
    47. .code
    48.  
    49. CDO_DispatchDeviceControl  proc pDeviceObject:PDEVICE_OBJECT, pIrp:PIRP
    50. local status:NTSTATUS
    51.  local dwBytesReturned:DWORD
    52. push ebx
    53. push edi
    54. push esi
    55.      and dwBytesReturned, 0
    56.      mov status,eax
    57.      mov esi, pIrp
    58.      assume esi:ptr _IRP
    59.  
    60.      mov edi,DWORD PTR [esi+96]
    61.      assume edi:ptr IO_STACK_LOCATION
    62.     movzx eax, [edi].MajorFunction
    63.     .if  eax == IRP_MJ_DEVICE_CONTROL
    64.     .if [edi].Parameters.DeviceIoControl.IoControlCode == IOCTL_rem
    65. mov ebx, [edi].Parameters.DeviceIoControl.InputBufferLength
    66.     mov edi, [esi].AssociatedIrp.SystemBuffer
    67. remm:
    68. cmp ebx, 0
    69. jz aaws
    70. xor       edx,edx
    71. mov ax, word ptr [edi]
    72. mov dl, al
    73. sub ebx,2
    74. add edi,2
    75. mov MakeCode, dx
    76. mov dl, ah
    77. mov Flags, dx
    78. invoke KbFilter_ServiceCallback, BusDeviceObject, kInputDataStart, kInputDataEnd, kInputDataConsumed
    79. jmp remm
    80. aaws:
    81.              mov dwBytesReturned, 1
    82.              mov status, STATUS_SUCCESS
    83.  
    84.      mov eax, status
    85.      mov [esi].IoStatus.Status, eax
    86.      mov eax, dwBytesReturned
    87.      mov [esi].IoStatus.Information, eax
    88.      fastcall IofCompleteRequest, pIrp, IO_NO_INCREMENT
    89.      mov eax, status
    90.      ret
    91.      .endif
    92.      .endif
    93.      invoke FiDO_DispatchPassThrough, pDeviceObject, pIrp
    94.      assume edi:nothing
    95.      assume esi:nothing
    96.  
    97. pop esi
    98. pop edi
    99. pop ebx
    100.      mov eax, status
    101.      ret
    102. CDO_DispatchDeviceControl endp
    и сказал,что драйвер пиши сам, на что в ответ была просьба: чтобы я полностью написал этот драйвер,а он соответственно оплатит эту работу я уточнил на форуме сколько это стоит и сообщил ему, он согласился. я написал драйвер и исправил все баги, но видимо он это хочет получить бесплатно, как и те строки, так извините...работа должна быть оплачена
     
  17. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    драйвер, который пишет привет, мне не нужен, я писал функции будущего драйвера. мне нужны (были нужны, сейчас нашёл альтернативное решение в пользовательском режиме) составляющие его строки с объяснениями. + увеличение оговорённой цены почти в 20 раз никуда не годится, о чём я писАл на форуме. в итоге оба остались ни с чем, только зря отняли моё время.
     
  18. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    425
    BelowZero, что же ты не пишешь,что строки ты получил
    Код (Text):
    1. ключевые строки ехе
    2.  
    3.  
    4. CTL_CODE macro DeviceType,Function,Method,Access
    5.     exitm <( ( ( DeviceType )  shl  16 )  or  ( ( Access )  shl  14 )  or  ( ( Function )  shl  2 )  or  ( Method ) ) >
    6.     endm
    7. DEVICE_TYPE_FROM_CTL_CODE macro ctrlCode
    8.     exitm <( ( ( ctrlCode  and  0ffff0000h ) )  shr  16 ) >
    9.     endm
    10. FILE_DEVICE_UNKNOWN EQU 00000022h
    11. METHOD_BUFFERED EQU 0
    12. FILE_ANY_ACCESS EQU 0
    13. IOCTL_rem equ CTL_CODE(FILE_DEVICE_UNKNOWN, 802h, METHOD_BUFFERED, FILE_ANY_ACCESS)
    14.  
    15. .data
    16. hDevice HANDLE ?
    17. Scancod db 22h, 00, 23h, 00, 30h, 00, 20h, 00, 14h, 00, 31h, 00 ; это слово "привет"
    18.  
    19. .code
    20. local dwBytesReturned:DWORD
    21. invoke CreateFile, $CTA0("\\\\.\\DeviceSymbolicName"), GENERIC_READ + GENERIC_WRITE, 0, NULL, OPEN_EXISTING, 0, 0  
    22.     .if eax == INVALID_HANDLE_VALUE
    23. ;;;;;;;ошибка
    24. .endif
    25.   invoke DeviceIoControl, hDevice, IOCTL_rem, \
    26.                                              addr Scancod, sizeof Scancod, \
    27.                                              NULL , 0, \
    28.                                              addr dwBytesReturned, NULL
    29.  .if ( eax == 0 ) && ( dwBytesReturned == 0 )
    30. ;;;;;;;ошибка
    31. .endif
    32.  
    33.  
    34. строки обработки IOCTL драйвером
    35.  
    36.  
    37. .data
    38.     UnitId              WORD    ?
    39.     MakeCode            WORD    ?
    40.     Flags               WORD    ?
    41.  
    42. kInputDataStart PKEYBOARD_INPUT_DATA  offset UnitId
    43. kInputDataEnd PKEYBOARD_INPUT_DATA  offset UnitId + 12
    44. kInputDataConsumed PULONG  offset kkInputDataConsumed
    45. kkInputDataConsumed dd 0
    46.  
    47. .code
    48.  
    49. CDO_DispatchDeviceControl  proc pDeviceObject:PDEVICE_OBJECT, pIrp:PIRP
    50. local status:NTSTATUS
    51.  local dwBytesReturned:DWORD
    52. push ebx
    53. push edi
    54. push esi
    55.      and dwBytesReturned, 0
    56.      mov status,eax
    57.      mov esi, pIrp
    58.      assume esi:ptr _IRP
    59.  
    60.      mov edi,DWORD PTR [esi+96]
    61.      assume edi:ptr IO_STACK_LOCATION
    62.     movzx eax, [edi].MajorFunction
    63.     .if  eax == IRP_MJ_DEVICE_CONTROL
    64.     .if [edi].Parameters.DeviceIoControl.IoControlCode == IOCTL_rem
    65. mov ebx, [edi].Parameters.DeviceIoControl.InputBufferLength
    66.     mov edi, [esi].AssociatedIrp.SystemBuffer
    67. remm:
    68. cmp ebx, 0
    69. jz aaws
    70. xor       edx,edx
    71. mov ax, word ptr [edi]
    72. mov dl, al
    73. sub ebx,2
    74. add edi,2
    75. mov MakeCode, dx
    76. mov dl, ah
    77. mov Flags, dx
    78. invoke KbFilter_ServiceCallback, BusDeviceObject, kInputDataStart, kInputDataEnd, kInputDataConsumed
    79. jmp remm
    80. aaws:
    81.              mov dwBytesReturned, 1
    82.              mov status, STATUS_SUCCESS
    83.  
    84.      mov eax, status
    85.      mov [esi].IoStatus.Status, eax
    86.      mov eax, dwBytesReturned
    87.      mov [esi].IoStatus.Information, eax
    88.      fastcall IofCompleteRequest, pIrp, IO_NO_INCREMENT
    89.      mov eax, status
    90.      ret
    91.      .endif
    92.      .endif
    93.      invoke FiDO_DispatchPassThrough, pDeviceObject, pIrp
    94.      assume edi:nothing
    95.      assume esi:nothing
    96.  
    97. pop esi
    98. pop edi
    99. pop ebx
    100.      mov eax, status
    101.      ret
    102. CDO_DispatchDeviceControl endp
    , а оплатить,как ты объявил на весь форум, так и не оплатил - 350 рублей, я их не получал!
     
  19. BelowZero

    BelowZero New Member

    Публикаций:
    0
    Регистрация:
    24 дек 2011
    Сообщения:
    38
    мой первый пост был про запуск драйвера. это мой 2 пост, мне нет толку от строк, если я не знаю, что они делают и как их скомпилить в рабочий драйвер. это если не учитывать того, что драйвер, по вашим же словам, не выполняет всех функций, описанных в задании. т.е. если это строки работчего драйвера, почему вы толкали полный код за 6 косарей? хотя, мне уже не важно.
     
  20. Llirik

    Llirik Member

    Публикаций:
    0
    Регистрация:
    18 июл 2008
    Сообщения:
    425
    тебе никто и ничего не толкал! ты сам не знаешь,что ты хочешь!! то тебе строки надо,то тебе их вдруг не надо! нигде не было ни слова про функции загрузки драйвера и обработки IRP`ов от железа.А строки,полученные от меня,ты до сих пор не оплатил - 350 рублей! а все время кричишь про какие-то косари)))это был с твоей стороны заказ, мною он сделан! напиши 400 строк драйвера за три дня, а я посмотрю ,как это у тебя получится, желаю успехов! ))
     
Статус темы:
Закрыта.