1.获取句柄结构
第一步在代码中加入断点,并运行到断点出
第二步进入按F11跟进ObReferenceObjectByHandle后在跟进ObpReferenceObjectByHandleWithTag
查看300行汇编代码,保存到nodepad++
用notepad++检索ObpKernelHandleTable查看,进程结构共有三处,说明有三张表。2在第一张表处加断点,并按g执行到该断点处。
验证寄存器保存的地址是否是正确的进程表结构。
4.查看_HANDLE_TABLE
2.查看句柄拿来干什么了
1.OBJECT_HANDLE_INFORMATION->GrantedAccess保存了权限信息,我们需要获得在哪里取得的这个权限信息。ba r4 info+4:在读取info+4的4字节处下断点最后会反推出三张表。反汇编代码如下
1: kd> u rip l 300
fffff805`4a4cee3e 53 push rbx
fffff805`4a4cee3f 55 push rbp
fffff805`4a4cee40 57 push rdi
fffff805`4a4cee41 4154 push r12
fffff805`4a4cee43 4155 push r13
fffff805`4a4cee45 4157 push r15
fffff805`4a4cee47 4883ec58 sub rsp,58h
fffff805`4a4cee4b 654c8b3c2588010000 mov r15,qword ptr gs:[188h]
fffff805`4a4cee54 488be9 mov rbp,rcx
fffff805`4a4cee57 4c8ba424b8000000 mov r12,qword ptr [rsp+0B8h]
fffff805`4a4cee5f 33c9 xor ecx,ecx
fffff805`4a4cee61 4c8bac24c8000000 mov r13,qword ptr [rsp+0C8h]
fffff805`4a4cee69 498bd8 mov rbx,r8
fffff805`4a4cee6c 888c24b8000000 mov byte ptr [rsp+0B8h],cl
fffff805`4a4cee73 498bbfb8000000 mov rdi,qword ptr [r15+0B8h]
fffff805`4a4cee7a 4889bc2490000000 mov qword ptr [rsp+90h],rdi
fffff805`4a4cee82 49890c24 mov qword ptr [r12],rcx
fffff805`4a4cee86 4d85ed test r13,r13
fffff805`4a4cee89 0f8585030000 jne nt!ObpReferenceObjectByHandleWithTag+0x3e4 (fffff805