![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
![]()
Доброго времени суток. Возникла следующая проблема: при попытке открытия драйвера
Код:
Инсталляцию драйвера делаю с помощью reg-файла Код:
Единственный способ стать умнее - играть с более умным противником.
|
![]() |
![]() |
![]() |
#2 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
и что тут удивительного, это ж kernel mode драйвер, загружается в ядро и естественно ни какой user mode к нему доступа не получит.
Хотите использовать фунционал драйвера, есть DeviceIoControl. |
![]() |
![]() |
![]() |
#3 | |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
![]()
А как мне его хэндл получить тогда?
В описании DeviceIoControl() тоже сказано, что хэндл получать надо с помощью CreateFile() - как я и делаю. Цитата:
Единственный способ стать умнее - играть с более умным противником.
|
|
![]() |
![]() |
![]() |
#4 | |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
правильно, нужно получить хендл устройства (не драйвера). Для этого нужно знать имя устройства (уверены что система назвала устройство "\\\\.\\KBDRIVER"?). Чтобы узнать имя устройства можно воспользоваться SetupDiXxx.
кстати, только сейчас обратил внимание, что значит: Цитата:
Последний раз редактировалось Stilet; 27.06.2011 в 13:00. |
|
![]() |
![]() |
![]() |
#5 | |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
![]() Цитата:
Если использовать inf-файл то как назначать например GUID и т.д. P.S. драйвер осуществляет перехват функции.
Единственный способ стать умнее - играть с более умным противником.
|
|
![]() |
![]() |
![]() |
#6 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
http://msdn.microsoft.com/en-us/libr...(v=VS.85).aspx
PS.2.PS. Просто интересно для чего такой драйвер? Чью функцию он перехватывает? Событий для которых драйвер может предложить свой обработчик не так уж и много, что это за событие которое позволяет ему перехватывать функцию? Последний раз редактировалось f.hump; 24.06.2011 в 14:38. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
![]()
Спасибо за ссылку
![]() Цитата:
Попробовал использовать SCM, однако при Код:
Единственный способ стать умнее - играть с более умным противником.
|
|
![]() |
![]() |
![]() |
#8 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
а... скрыть чего-то от кого-то.
на счет OpenSCManager вы и сами ответили - нужен админ. Ну или, чтоб поизвращенней, два сервиса, которые радостно стартануться в сессии 0, и один из них прикроет второй от чужих глаз. |
![]() |
![]() |
![]() |
#9 | |
Форумчанин
Регистрация: 26.03.2010
Сообщений: 538
|
![]() Цитата:
Единственный способ стать умнее - играть с более умным противником.
|
|
![]() |
![]() |
![]() |
#10 |
C/C++, Asm
Участник клуба
Регистрация: 02.03.2010
Сообщений: 1,323
|
![]()
программно никак. юзер не может промоутить себя сам до админа.
но есть в винде такая интересная вещь как сессия 0, в ней работают системные сервисы, драйвера и т.п. Из нее можно получить доступ почти ко всему. Так что, как вариант можно написать user mode драйвер или быть может сервис (но похоже, что сервис в вашей ситуации не выбор), установить его, и система загрузит его в сессию 0. А самое важное здесь, собственно за что я люблю user mode драйвера, это то что могу пользоваться WinApi (за исключением функций, которые относятся к (G)UI). и еще если я по непонятным причинам налажал при написании user mode драйвера он не убъет систему как kernel mode, а просто перезапустится. это была информация к размышлению. Все сказанное выше остается верным. Но, скажем если речь идет о запуске приложения в Viste/W7 в сессии админа с включенным UAC, можно добавить trustInfo manifest. Последний раз редактировалось Stilet; 27.06.2011 в 13:01. |
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
CppWEbBrowser. Запрет на открытие нового окна, и открытие его в том же окне | Askar_g | Общие вопросы C/C++ | 4 | 25.06.2011 20:00 |
драйвера | technik_312 | Помощь студентам | 2 | 10.01.2010 15:57 |
блочные драйвера | valys361 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 0 | 03.06.2009 22:55 |
Ошибка драйвера | Dimoney | Общие вопросы Delphi | 8 | 28.05.2008 11:26 |
как перехватить открытие чужого приложенияпытаюсь перехватить открытие любого приложе | rpy3uH | Win Api | 2 | 02.12.2006 12:12 |