Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
[ntkernel] таблица описателей объектов процесса - хелп! 24.06.03 05:54
Автор: NeuronViking Статус: Незарегистрированный пользователь
|
Люди подскажите плиз как из хендла объекта (находящегося в БД хендлов в процессе) получить правильные значения на структуры объектов типа заголовка объекта и проч.?
Пытался сделать это двумя способами:
1. через ObReferenceObjectByHandle
Она возвращает указатель на тело объекта судя по ИФС ДДК. Из разных источников известно что ptrObjectBody+sizeof(OBJECT_HEADER) = OBJECT_HEADER, но когда получаю инфу из полей OBJECT_HEADER - там ерунда какая-то, т.е. неверно получен указатель на заголовок объекта.. где-то что-то не так делаю наверно :(
2. через EPROCESS->PHANDLE_TABLE
из хендла вычисляю индексы в массивах указателей HANDLE_LAYER1,HANDLE_LAYER2 и HANDLE_LAYER3 и получаю нужную HANDLE_ENTRY. Вроде бы индекы выглядят правдоподобно. Но когда получаю инфу из HANDLE_ENTRY там тоже ерунда полная!
Есть ли у кого сэмплы как работать с БД хендлов процесса и как вообще с ними работать? Мне нужно, находясь в контексте процесса, из нужного хендла вытащить всю возможную инфу о нем, типа полного имени объекта, указатели на структуры объекта и проч.. например так делает ProcessExplorer Марка Руссиновича.
|
|
[ntkernel] таблица описателей объектов процесса - хелп! 25.06.03 11:32
Автор: IgorR <Igor Razin> Статус: Member
|
> Из разных источников известно что > ptrObjectBody+sizeof(OBJECT_HEADER) = OBJECT_HEADER ^
OBJECT_HEADER располагаетсяпередтелом объекта. Так что надо вычитать.
|
|
|