Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Вызов сервисов Win32k.sys из Kernel-mode драйвера 11.02.03 14:34 Число просмотров: 1837
Автор: cb <cb> Статус: Member
|
> Что интересно - компоненты ядра системы сами пытаются > вызывать сервисы из диапазона номеров win32k, но поскольку > дескриптора в основной таблице нет - благополучно > обламываются,
любопытно...
А какие именно сервисы вызываются? пример можешь привести?
> В результате выяснилось, что в большинстве случаев вызов, как > ему и положенно, обламывался (ЕАХ=0), но иногда > благополучно возвращал virtual-key code. > Это и есть обещаная нестабильность? Если у кого-то есть > объяснение этому - просьба меня просветить... :) Есть > мысль, что можно не мудрить с SDT, а просто стабилизировать > единично возникающий ненулевой результат... :)
может быть вызов завершался успешно когда он был сделан в контексте нужного процесса? если да томножно попробовать использовать KeAttachProcess....
> Проблема на данный момент - найти нужное окно по заголовку, > и ввести в него определённый текст с учётом текущей > раскладки клавиатуры. > Понятно, что на уровне приложения такое делается просто, но > вот надо чтоб всё было сделано в коде драйвера.
логин/пароль что-ли? ;)))
можно попробовать такой путь:
переключиться в контекст нужного процесса (KeAttachProcess), выделить память в пользовательской области (NtAllocateVirtualMemory), скопировать в выделенный кусок заранее подготовленный код, найти UserMode поток в этом процессе - переключить его на исполнение скопированного кода, после чего вырнуть поток в исходное состояние (вместо нахождения существующего потока можно попробовать создать свой)... ну а какой код ты положишь в эту память - тебе видней...
выглядит все это дико и я не уверен в "реализуемости" некоторых шагов, плюс видимо потребуется знание недокументированных структур описывающих поток, но попробовать можно... мне кажется я где-то встречал реализацию подобной вещи....
cb.
|
|
|