04000xxx - неправильный адрес пеб. У тебя неверное определение PEPROCESS. И вообще зачем это надо? Есть PsGetProcessPeb
спасибо огромное всем кто попытался разобраться в моей проблеме! да Great ты был прав, оказался адрес Peb не верным в структуре _EPROCESS только я не понимаю почему: вроде достал ntoskrnl.pdb для xp sp2. с помощью pdbdump просмотрел структуры, или это было не sp2. в любом случае спасибо уфффф....намучился
pdbdump не всегда генерирует структуры, которые можно потом использовать. А именно, он не генерит инфу о union'ах, в связи с чем получаются неверные оффсеты, если скомпилировать как есть. По крайней мере, у меня. Структура EPROCESS хорошо описана в GNU версии файла ntifs.h, которую можно найти, например, здесь http://branten.se/nt/ntifs.h Так же можно было бы обращаться по оффсету, а не через определение структуры. Но в любом случае использовать структуру напрямую не рекомендуется. Специально есть функции готовые.