一、前因
在HOOK SSDT Shadow的时候老师说,必须要调用一个界面函数使自己成为GUI进程(线程),才会给这个进程挂上PTE,我对此表示怀疑,于是有了以下探讨
二、探究
1、首先来看一下system进程
查询所有进程
kd> !process 0 0
**** NT ACTIVE PROCESS DUMP ****
PROCESS 867b5830 SessionId: none Cid: 0004 Peb: 00000000 ParentCid: 0000
DirBase: 06d40020 ObjectTable: e1002e40 HandleCount: 248.
Image: System
切换到System进程
kd> .process 867b5830
Implicit process is now 867b5830
WARNING: .cache forcedecodeuser is not enabled
查看SSDT Shadow
kd> dd KeServiceDescriptorTableShadow
8055d6c0 80505450 00000000 0000011c 805058c4
8055d6d0 bf999b80 00000000 0000029b bf99a890
8055d6e0 00000000 00000000 00000000 00000000
8055d6f0 00000000 00000000 00000000 00000000
8055d700 80505450 00000000 0000011c 805058c4
8055d710 00000000 00000000 00000000 00000000
8055d720 00000000 00000000 00000000 00000000
8055d730 00000000 00000000 00000000 00000000
W32pServiceTable地址为bf999b80,查看一下有没有函数地址
kd> dd bf999b80
bf999b80 ???????? ???????? ???????? ????????
bf999b90 ??????<