информационная безопасность
без паники и всерьез
 подробно о проекте
Spanning Tree Protocol: недокументированное применениеПортрет посетителяГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Мощные индийские ключи 
 Срочные патчи для критических уязвимостей... 
 Очередной рекордный патч Microsoft 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
DDK : Все работает! 02.09.01 03:06  Число просмотров: 1318
Автор: 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





Рейтинг@Mail.ru


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