информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Spanning Tree Protocol: недокументированное применениеГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
Вызов сервисов Win32k.sys из Kernel-mode драйвера 11.02.03 13:58  Число просмотров: 2649
Автор: Alexander N. Brandt Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > сервисы win32k.sys в драйвере ядра
>
> вообще это не самая хорошая мысль... стабильности системе
> это явно не способствует...

Вот я тоже это нутром чувствую, а доказать не могу... :)
Вчера попробовал софтайсом скопировать первый дескриптор теневой таблицы в третий основной - всё работало, сервисы вызывались, система за два часа (не интенсивного, правда) пользования так и не упала... :)
Что интересно - компоненты ядра системы сами пытаются вызывать сервисы из диапазона номеров win32k, но поскольку дескриптора в основной таблице нет - благополучно обламываются, а вот если теневую таблицу скопировать на место основной - система живёт какое-то время (каждый раз по-разному) а потом выпадает в синий экран с ошибкой в win32k.sys

> посмотри здесь:
> в принципе тоже не самый красивый способ (на всякий случай
> - его придумал не я ;)) - подсмотрел в rootkit-e), но по
> другому вряд ли получится.

Пасиб. Выкачал, буду думать... :)

> > Может быть, есть какие-нибудь другие способы заставить
> > kernel-mode драйвер вызывать необходимые сервисы?
>
> на мой взгляд эти сервисы не зря вынесли в отдельную

Тут вот ставил эксперимент. Повесил фильтр на клавиатуру, при каждом нажатии вызывался 11BAh (NtUserMapvirtualkeyEx()) которому передавался сканкод клавиши, возвращаемый результат писался в файл. В результате выяснилось, что в большинстве случаев вызов, как ему и положенно, обламывался (ЕАХ=0), но иногда благополучно возвращал virtual-key code.
Это и есть обещаная нестабильность? Если у кого-то есть объяснение этому - просьба меня просветить... :) Есть мысль, что можно не мудрить с SDT, а просто стабилизировать единично возникающий ненулевой результат... :)

> таблицу - скорее всего их нельзя "безопасно" вызвать из
> ядра, а посему это плохой путь....

Хз. Будем думать, будем тестировать... :)

> может ты изложишь проблему в целом? может без этого можно
> обойтись?

Наверняка можно, осталось только выяснить, как... :)
Проблема на данный момент - найти нужное окно по заголовку, и ввести в него определённый текст с учётом текущей раскладки клавиатуры.
Понятно, что на уровне приложения такое делается просто, но вот надо чтоб всё было сделано в коде драйвера. Ясен пень, что глупость, но вот надо.... :)
<operating systems> Поиск 






Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach