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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
DDK : Все работает! 02.09.01 03:06  Число просмотров: 1166
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
TRAP это макрос вставляющий int3 в DEBUG-версии, в RELEASE - ничего.

Чтобы система не говорила о "чужом" файле, проще выключить систему защиты системных файлов.

Чтобы обновить драйвер без перезагрузки нужно сделать disable device, скопировать новый sys-файл, и потом enable device. В отношении клавиатуры это придеться делать через setup-функции, см. DDK HELP.
Если в Event Viewer были просмотренны события записанные в журнал драйвером, то sys-файл будет занят и надо закрыть Event Viewer.

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

Удачи.
<programming>
DDK : Как связаться с драйвером? 31.08.01 01:21  
Автор: sergei_btf Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Здравствуйте.
У меня такая проблема, я связываюсь с драйвером клавиатуры путем вызова функции CreateFile() (имя драйвера получаю путем вызовов SetupDiGetClassDevs(), SetupDiEnumDeviceInterfaces(), SetupDiGetInterfaceDeviceDetail() ). Когда режим доступа при вызове CreateFile() установлен в “GENERIC_READ | GENERIC_WRITE” или одно из них, функция взращает код ошибки, если же режим доступа установить в 0 то все нормально. Пробовал открывать игровой порт и дисковод все нормально открывается с режимом доступа “GENERIC_READ | GENERIC_WRITE”, а с мышкой то же что и с клавиатурой. Попытался связаться с драйвером фильтром клавиатуры (kdbfilter) (зарегистрировал интерфейс, включил его, в реестре все нормально прописалось) ситуация аналогичная, не хочет открывать. Сравнивал исходники драйверов игрового порта и клавиатуры, но вроде все что есть в игровом порте, то есть и в клавиатуре.
Я работаю под Win 2k, ddk то же под Win 2k.
Если кто ни будь знает в чем здесь проблема помогите пожалуйста.
DDK : Как связаться с драйвером? 31.08.01 08:27  
Автор: leo <Леонид Юрьев> Статус: Elderman
Отредактировано 31.08.01 08:40  Количество правок: 1
<"чистая" ссылка>
А какие ошибки возвращаются, access denied или что-то еще ?
И если не секрет, зачем тебе это надо ?

Вот вырезка из кода (kbdclass.c):
// We do not allow user mode opens for read. This includes services (who
// have the TCB privilege).
//
if (Irp->RequestorMode == UserMode &&
(irpSp->Parameters.Create.SecurityContext->DesiredAccess & FILE_READ_DATA)
) {
status = STATUS_ACCESS_DENIED;
goto KeyboardClassCreateEnd;
}

Совет такой:
Откомпилируй debug-версию kb-драйвера, поставь TRAP на входе в KeyboardClassCreate() и посмотри что происходит при CreateFile() из user-mode.
DDK : Все работает! 01.09.01 14:42  
Автор: sergei_btf Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Все работает!

Просто закомментировал проверку и о-па! все работает. А то я пять дней бьюсь над этой ошибкой, уже начал пробовать вариант связи через другой драйвер, который открывается, но зато я много чего интересного узнал про DDK (нет худа без добра). Сейчас буду дальше теснить.
На всякий случай, если это нужно, код возвращаемой ошибки 0xffffffff (-1) чему соответствует макрос INVALID_HANDLE_VALUE.
Вообще-то секрет. У нас тут с мужиками есть небольшой проектик (поскольку я когда-то занимался программированием для защищенного режима на меня лег весь груз низкоуровневого программирования и по совместительству должность «тормоза проекта»). В плане закона все в порядке. Просто, мы решили, особо не распространятся. Это связано с некоторой спецификой проекта и относится больше к нашим знакомым.

Leo (или кто знает) если тебе не сложно, ответь пожалуйста еще на несколько вопросов.

Как можно установить свеже скомпилированный драйвер без перезагрузки компьютера?
Я делаю так, предварительно удаляю файл driver.cab, и просто копирую мой драйвер в папку C:\WINNT\system32\drivers, после чего windows выдает сообщение о неродном драйвере, игнорирую его, и затем перезагружаюсь.

Можно ли как ни будь отлаживать драйвер без host machine.

И еще. Что такое TRAP.

Спосибо за совет.
DDK : Все работает! 02.09.01 03:06  
Автор: leo <Леонид Юрьев> Статус: Elderman
<"чистая" ссылка>
TRAP это макрос вставляющий int3 в DEBUG-версии, в RELEASE - ничего.

Чтобы система не говорила о "чужом" файле, проще выключить систему защиты системных файлов.

Чтобы обновить драйвер без перезагрузки нужно сделать disable device, скопировать новый sys-файл, и потом enable device. В отношении клавиатуры это придеться делать через setup-функции, см. DDK HELP.
Если в Event Viewer были просмотренны события записанные в журнал драйвером, то sys-файл будет занят и надо закрыть Event Viewer.

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

Удачи.
Спасибо. 05.09.01 08:29  
Автор: sergei_btf Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Спасибо, за ответы.
1




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


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