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

Discussion in 'WASM.NT.KERNEL' started by AntiB, Jun 17, 2009.

  1. AntiB

    AntiB New Member

    Blog Posts:
    0
    Joined:
    Mar 23, 2007
    Messages:
    393
    Доброе время суток!

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

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

    AntiB New Member

    Blog Posts:
    0
    Joined:
    Mar 23, 2007
    Messages:
    393
    я тут немного подумал и...

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

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

    Wizard109 New Member

    Blog Posts:
    0
    Joined:
    Nov 6, 2006
    Messages:
    346
    Пацтулом :)

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