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

 eXeL@B —› Программирование —› Драйвер, запускающий процессы от имени указанного пользователя
Посл.ответ Сообщение

Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2007 13:25
· Личное сообщение · #1

Доброго времени суток.
Пишу драйвер, который должен работать на WinXP SP2 не зависимо от того, какие обновления установлены на сам SP2. Желательно чтобы он также работал на WinXP SP0 и WinXP SP1.
Сам драйвер должен при запуске каждого процесса в системе сначала проверять наличие етого процесса, в том числе и откуда именно он запускается, в текстовом файле. Текстовый файл C:\needrun.txt имеет следующий формат:

C:\WINDOWS\system32\calc.exe;user2;pass2
C:\WINDOWS\system32\notepad.exe;user3;pass3

При наличии процесса, что запускается, в текстовом файле, етот процесс нужно запустить под указаным пользователем. Имена пользователей и их пароли известны.
Если же процесс, что запускается, отсутствует в текстовом файле, никакие действия не предпринимаются.
Для реализации такой функциональности драйвера он сначала при запуске каждого процесса проверяет его наличие в текстовом файле. Если он существует, то драйвер убивает процесс. После етого убитый процесс нужно запустить из драйвера от имени указанного пользователя.
Отслеживать и убивать нужные процессы получается.
Как запускать нужные процессы из режима ядра под именем указанного пользователя?
Искал и читал статьи. Но там сам запуск процесса очень зависим от версии обновления системных файлов Windows. К тому же имперсонация возможна только из пользовательского режима.
Хотел бы подробнее почитать про возможность подобного запуска процесса. Желательно с рабочими исходниками, где ето можно посмотреть.
Зарание благодарен за ответ.




Ранг: 66.1 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 01 июля 2007 14:24
· Личное сообщение · #2

В структуре EPROCESS есть параметр, в котором указано, какой пользователь запустил процесс.



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 01 июля 2007 14:39
· Личное сообщение · #3

Мне нужно подробнее про реализацию такой функциональности в драйвере.




Ранг: 120.9 (ветеран), 5thx
Активность: 0.080
Статус: Участник
Programmer and reverser

Создано: 08 июля 2007 20:29
· Личное сообщение · #4

В винде можно запускать проги от имени другого пользователя. Поглаяди, как там устроено.
Илт реверси, или скачай сырцы винды 2000 с осла.

-----
Уважайте других и пишите грамотно.




Ранг: 49.7 (посетитель)
Активность: 0.020
Статус: Участник

Создано: 09 июля 2007 09:34
· Личное сообщение · #5

Почитай вот эту статью на MSDN msdn2.microsoft.com/en-us/library/aa378184.aspx



Ранг: 2.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 14 июля 2007 07:16
· Личное сообщение · #6

ViSoR, мне нужно для режима ядра.



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

Создано: 14 июля 2007 08:52
· Личное сообщение · #7

а как вообще процесс в режиме ядра создать, кроме как не вручную?



Ранг: 214.1 (наставник)
Активность: 0.130
Статус: Участник

Создано: 14 июля 2007 09:35
· Личное сообщение · #8

посмотри реализацию в проге ExecAs - может возьмешь что себе из нее


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


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