Вопрос

Существует функция Flink и Blink (Прямая ссылка и Обратная ссылка) для двухсвязного списка процессов.Существует идентификатор процесса.Все это упаковано в структуру, на которую ссылаются как PEPROCESS или _KPROCESS .Но где они находятся и каковы другие элементы в этой структуре?

Или, если ответ не является ни коротким, ни простым, где можно найти ссылки, если не в документации или заголовочных файлах?(Это то место, куда я заглянул и, вероятно, что-то упустил из виду.)

Это было полезно?

Решение

Ссылка на электронный ПРОЦЕСС

Структура EPROCESS является непрозрачной структура, которая служит процессом объект для процесса.

Некоторые подпрограммы, такие как PsGetProcessCreateTimeQuadPart, используют EPROCESS для определения процесса, с которым нужно работать.Драйверы могут использовать процедуру PsGetCurrentProcess для получения указателя на объект process для текущего процесса и могут использовать Процедуру ObReferenceObjectByHandle для получите указатель на объект процесса который связан с указанным дескриптором.PsInitialSystemProcess глобальная переменная указывает на процесс объект для системного процесса.

Обратите внимание, что объект процесса - это объект Object Manager.Драйверы должны использовать подпрограммы диспетчера объектов, такие как ObReferenceObject и ObDereferenceObject для поддержания количества ссылок на объект.

Это означает, что вас не должно волновать, каковы члены структуры процесса.Тем не менее, существуют источники, которые подробно описывают структуру процесса.

Это книга содержит более подробное описание того, что представляют собой отдельные участники.

Другие советы

Структура EPROCESS задокументирована в отладочных символах Windows.

При подключении к ядру с помощью windbg, предполагая, что у вас правильно настроены символы отладки, выполните команду "dt nt!_EPROCESS" должен предоставить вам макет структуры EPROCESS, специфичный для версии ядра, к которой вы подключены.

Структура EPROCESS особенно непрозрачна и может быть найдена только для каждой сборки путем изучения типов данных, экспортируемых символами отладки сборки.

Таким образом, вы могли бы сделать следующее:

  1. Скачать volatility здесь
  2. Беги volatility на одном из их образцов дампов памяти или на вашем собственном дампе, если вы захотите.
  3. Используя подключаемый модуль volshell.py, запустите

    dt('_EPROCESS')

Это привело бы к выводу структуры EPROCESS и различных других структур в ядре Windows

или вы могли бы просто просмотреть содержимое структуры здесь

Это также может оказаться полезным

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top