ObjectTable ? Считать из EPROCESS.ObjectTable указатель. Но смещение этого поля может меняться в версиях, чтобы его найти можно раздизасмить например экспортируемую ObQueryObjectAuditingByHandle(). Хотя лучше сделать таблицу версия/смещение.
Clerk EPROCESS.ObjectTable у меня уже в XP SP2 не правильное, скорее всего надо через ObQueryObjectAuditingByHandle()
int2eh Почему не правильное ? У меня вроде валидное значение, щас ольгой ядро открыл(ядерным не могу пока), вот часть EPROCESS: Код (Text): ;EPROCESS $ ==> 001B0003 $+4 00000000 $+8 81635330 $+C 81635330 $+10 81635338 $+14 81635338 $+18 18DFC000 $+1C 1145D000 $+20 00000000 $+24 00000000 $+28 00000000 $+2C 00000000 $+30 000020AC $+34 00000001 $+38 00000002 $+3C 00000002 $+40 81635368 $+44 81635368 $+48 00000000 $+4C 00000000 $+50 8179C740 $+54 8179C740 $+58 00000000 $+5C 00000003 $+60 06080002 $+64 00000000 $+68 3A000000 $+6C 00000000 $+70 FE563B26 $+74 01C9A8E4 $+78 00000000 $+7C 00000000 $+80 00000002 $+84 00000E0C $+88 80569658 $+8C 817F0B40 $+90 000005C8 $+94 00004404 $+98 0000005D $+9C 00000770 $+A0 000044DC $+A4 000000BD $+A8 0000005D $+AC 00F0E000 $+B0 00EB0000 $+B4 F8A63014 $+B8 817F0B6C $+BC FD283BE8 $+C0 E1656B60 $+C4 E54FF6F8 ;<--- $+C8 E41B28C1 E54FF6F8 Валидный указатель вполне.., другое что формат таблицы может быть изменён. Да и та функция это поле читает: Код (Text): 00507A9D . 64:A1 24010000 mov eax,dword ptr fs:[124] ;KPRCB.CurrentThread:PKTHREAD 00507AA3 . 8B55 08 mov edx,dword ptr ss:[ebp+8] 00507AA6 . 8BF0 mov esi,eax 00507AA8 . B9 00000080 mov ecx,80000000 00507AAD . 8BC2 mov eax,edx 00507AAF . 23C1 and eax,ecx 00507AB1 . 3BC1 cmp eax,ecx 00507AB3 . 0F84 82290200 je ntoskrnl.0052A43B 00507AB9 > 8B46 44 mov eax,dword ptr ds:[esi+44] ;KPRCB.ApcState.Process:PEPROCESS 00507ABC . 8BB8 C4000000 mov edi,dword ptr ds:[eax+C4] ;EPROCESS.ObjectTable:PHANDLE_TABLE В общем нужно в сурцах смотреть.
Clerk Спасибо. У меня HANDLE_TABLE валидная, но неправильная. Однако, и один скрытый процесс с именем образа "яяяя" я нашел у себя который может и портит всё!
Да, всё портит(ил) гад "яяяя"!!! Даже через LIST_ENTRY HandleTableList ничего не выходит, только вижу одну испорченную HANDLE_TABLE для UniqueProcessId = 0