Сейчас на форуме: vasilevradislav, tyns777, zombi-vadim (+3 невидимых)

 eXeL@B —› Программирование —› ZwLoadDriver и STATUS_PRIVILEGE_NOT_HELD
Посл.ответ Сообщение


Ранг: 90.3 (постоянный), 1thx
Активность: 0.030
Статус: Участник

Создано: 12 февраля 2008 13:51
· Личное сообщение · #1

Hello all.

Возникла проблемка при загрузке драйвера по ZwLoadDriver вот в какой ситуации, программа прописывает себя к примеру в "HKLM\Software\Microsoft\Windows\CurrentVersion\Run", приложение удачно стартует при каждом запуске, внутри вызывается ZwLoadDriver и возвращает C0000061 (STATUS_PRIVILEGE_NOT_HELD). Если приложение будет запущено непосредственно пользователем , к примеру из проводника, то драйвер удачно загружается и возвращает 0. Посмотрел от какого имени запускается этот процесс - от имени пользователя обладающего правами администратора в обоих случаях. Операционаая система Windows XP SP2.

Так почему же не удаётся загрузить драйвер?



Ранг: 237.0 (наставник), 20thx
Активность: 0.130
Статус: Участник
sysenter

Создано: 12 февраля 2008 16:21
· Личное сообщение · #2

Устанавливай привилегии сам, в чем проблема?

-----
продавец резиновых утёнков





Ранг: 90.3 (постоянный), 1thx
Активность: 0.030
Статус: Участник

Создано: 13 февраля 2008 12:20 · Поправил: SLayer
· Личное сообщение · #3

HiEndsoft, спс, намёк понял. Вот такой код решает данную проблему:

if OpenProcessToken(GetCurrentProcess, TOKEN_ALL_ACCESS, hndl) then begin
if LookupPrivilegeValue(nil, 'SeLoadDriverPrivilege', pr.Privileges[0].luid) then begin
pr.PrivilegeCount := 1;
pr.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
AdjustTokenPrivileges(hndl, false, pr, SizeOf(pr2), pr2, n);
end;
CloseHandle(hndl);
end;


Тему закрываю.


 eXeL@B —› Программирование —› ZwLoadDriver и STATUS_PRIVILEGE_NOT_HELD
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати