информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Все любят медАтака на InternetЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Очередное исследование 19 миллиардов... 
 Оптимизация ввода-вывода как инструмент... 
 Зловреды выбирают Lisp и Delphi 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / operating systems
Имя Пароль
если вы видите этот текст, отключите в настройках форума использование JavaScript
ФОРУМ
все доски
FAQ
IRC
новые сообщения
site updates
guestbook
beginners
sysadmin
programming
operating systems
theory
web building
software
hardware
networking
law
hacking
gadgets
job
dnet
humor
miscellaneous
scrap
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
[NT] 01.02.03 16:08  
Автор: AAS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Как в режиме ядра получить адрес блока EPROCESS процесса system idle?
[NT] System или Idle? :-)) 01.02.03 19:17  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
> Как в режиме ядра получить адрес блока EPROCESS процесса
> system idle?
Ну в общем это я издеваюсь - не обессудьте :-))
Может так:

status = PsLookupProcessByProcessId(0, &pEprocess);

Аргументы, думаю, понятны. Экспортируется из ntoskrnl.exe
Если нужен System, то он скорее всего сразу за ним в списке:
pSystem = CONTAINING_RECORD(pIdle->ProcessListEntry, EPROCESS, ProcessListEntry);
Хотя и не проверял, но скорее всего так
[NT] Именно Idle 03.02.03 17:55  
Автор: AAS Статус: Незарегистрированный пользователь
<"чистая" ссылка>
> > Как в режиме ядра получить адрес блока EPROCESS
> процесса
> > system idle?
> Ну в общем это я издеваюсь - не обессудьте :-))
> Может так:
>
> status = PsLookupProcessByProcessId(0, &pEprocess);
>
> Аргументы, думаю, понятны. Экспортируется из ntoskrnl.exe
> Если нужен System, то он скорее всего сразу за ним в
> списке:
> pSystem = CONTAINING_RECORD(pIdle->ProcessListEntry,
> EPROCESS, ProcessListEntry);
> Хотя и не проверял, но скорее всего так

Нет, PsLookupProcessByProcessId здесь не кактит, лично проверял, в кольцевом списке активных процессов его нет. А с процессом System все проще: в ntoskrnl экспортируется переменная PsInitialSystemProcess, это и есть укзатель на EPROCESS System.
[NT] У меня на время возникла идея потрейсить NtQuerySystemInformation 03.02.03 21:50  
Автор: amirul <Serge> Статус: The Elderman
<"чистая" ссылка>
По крайней мере в Task Managere Idle присутствует, так что этой самой кверей он возвращается (можно и прогу написать для проверки, но мне лениво). А трейсить его можно для того, чтоб найти как он перечисляет процессы. Не думаю что тело основного цикла там сильно большое. Или можно не трейсить, а в ida-у загнать ntoskrnl и смотреть там. А лучше всего совместно.

Но потом сам не захотел долбаться :-)))
Если никто больше ничего не предложит - можешь воспользоваться как крайним вариантом :-)))
1




Rambler's Top100
Рейтинг@Mail.ru


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