Посылка сообщения

Тема в разделе "WASM.NT.KERNEL", создана пользователем AntiB, 17 июн 2009.

  1. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    Доброе время суток!

    Я написал драйвер-фильтр методом атача к девайсу \Device\KeyboardClass0 и заюзал IRP_MJ_READ для получение сканкодов.
    У меня следующий вопрос:
    Как мне потом можно отослать этот сканкод программе в юзермоде (программа не моя, могу ставить хуки и подменять оконною процедуру) пробовал сделать методом PostMessage, для этого нашел в памяти KeServiceDescriptorTableShadow и приатачился к процессу csrss чтобы вызвать функцию NtUserPostMessage, суть в том что идет BSOD так как атачиться к процессу можно IRQL: < DISPATCH_LEVEL
    А диспетчер IRP_MJ_READ выполняется на высшем IRQL(могу ошибаться, прошу не пинать).... Что можете посоветовать?

    Заранее всем спасибо
     
  2. AntiB

    AntiB New Member

    Публикаций:
    0
    Регистрация:
    23 мар 2007
    Сообщения:
    393
    я тут немного подумал и...

    Если создать поток и буфер обмена между потоком и диспетчером IRP_MJ_READ, то есть диспетчер получает сканкод и записывает в буфер, а поток берет с буфера и атачиться к процессу csrss и отсылает сообщения сервисом NtUserPostMessage.

    Так делать глупо? есть ли другие решения проблемы?
     
  3. Wizard109

    Wizard109 New Member

    Публикаций:
    0
    Регистрация:
    6 ноя 2006
    Сообщения:
    346
    Пацтулом :)

    Я чего не пойму... зачем тебе csrss и NtUserPostMessage?
    Есть приложение, в котором ты можешь подшаманить над кодом... ну и добавь поток с циклом выборки получаемых от драйвера данных из заранее оговоренной области памяти...
    Передавать сканкоды мессагами типа WM_PAINT... хм ... добрый дедушка Билли узнает - с ума сойдет точно :)