Люди подскажите плиз как из хендла объекта (находящегося в БД хендлов в процессе) получить правильные значения на структуры объектов типа заголовка объекта и проч.?
Пытался сделать это двумя способами:
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 располагаетсяпередтелом объекта. Так что надо вычитать.