Сейчас на форуме: UniSoft, laslo, bartolomeo (+5 невидимых)

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


Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 28 сентября 2011 03:10 · Поправил: reversecode
· Личное сообщение · #1

доламываю одно приложение, но есть непонятка с определенным его функционалом
который впринципе к защите как таковой и не относится, но проверить это никак не могу

в двух словах

есть приложение назовем его proga.exe которая общается с драйвером proga.sys
и есть вспомагательное приложение privilege.exe которая запускает эта прога.exe,
и privilege.exe тоже общается с драйвером

разница в етих proga.exe и privilege.exe в общении с драйвером
privilege.exe делает AdjustTokenPrivileges на нужный SeXXXX

драйвер же в свою очередь должен различать эти обращения по средсвом SeSinglePrivilegeCheck

и в драйвере есть такой код

Code:
  1. Driver ....
  2.  
  3.     if ( SeSinglePrivilegeCheck(SeXXXX, Irp->RequestorMode) )  //RequestorMode всегда UserMode
  4.     {
  5.              // сюда должны попадать запросы privilege.exe, попадают.
  6.     } else 
  7.     {
  8.            // сюда должны попадать запросы proga.exe, не попадают.
  9.     };


проблема в том что все обращения proga.exe попадают в условя обращений privilege.exe
и из-за этого, некоторый функционал работает не корректно



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

Создано: 28 сентября 2011 03:34
· Личное сообщение · #2

А почему обязательно функция некорректно работает? Может просто в Irp->RequestorMode всегда KernelMode...




Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 28 сентября 2011 03:38 · Поправил: reversecode
· Личное сообщение · #3

там UserMode, я отладчиком смотрел для обеих случаев обращения

add:
проверил на другом пк где стоит Vista, там все правильно отрабатывает
вопрос тогда такой, это проблема WIN XP SP2 в целом или только локально у меня в винде что то сломано..



Ранг: 369.8 (мудрец), 400thx
Активность: 0.390
Статус: Участник

Создано: 28 сентября 2011 09:59
· Личное сообщение · #4

reversecode
Берем ProcessHacker и смотрим какие привилегии включены в токенах ваших процессов.

-----
PGP key <0x1B6A24550F33E44A>





Ранг: 1053.6 (!!!!), 1078thx
Активность: 1.060.81
Статус: Участник

Создано: 28 сентября 2011 13:25 · Поправил: reversecode
· Личное сообщение · #5

токен включен. причем самое загадочное что этот токен включен и на других (у знакомых) версиях WIN XP SP2(проверял).

выводы такие
1. глюк винды, и возможно лечится обновлением до SP3 (устанавливать исключительно для проверки не буду)
2. разработчики софта, не корректно выбрали SeXXXX для проверки, потому что только он(из тех токенов что разумней было бы использовать) по умолчанию включен, остальные SeYYYY токены выключены.


 eXeL@B —› Программирование —› некорректная работа SeSinglePrivilegeCheck
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати