首页
论坛
专栏
课程

[系统底层] [求助]对 SSDT Hook的妙用-对抗ring0 inline hook 的一个疑问

2007-9-29 09:26 8370

[系统底层] [求助]对 SSDT Hook的妙用-对抗ring0 inline hook 的一个疑问

2007-9-29 09:26
8370
原文链接http://bbs.pediy.com/showthread.php?t=40832

SSDT Hook的妙用-对抗ring0 inline hook这篇文章写的很好,不过看到
804E3F08 ->8057559e 这个地方的时候我有点迷茫了,不知道8057559e这个值是怎样来的?

请问有人能帮我解决一下吗?先谢了!

2020安全开发者峰会(2020 SDC)议题征集 中国.北京 7月!

最新回复 (5)
godisagirl 2007-9-29 10:19
2
0

KeServiceDescriptorTable.ntoskrnel.ServiceTableBase(804e3d20) + 0x7A * 4 = 804E3F08,然后804E3F08 ->8057559e


ssdt的ServiceTable是个数组,804E3F08是第0x7a项的地址,8057559e是内容,相当于ServiceTable[0x7a] = 8057559e
trkzrq 2007-9-29 13:09
3
0
这个回帖有问题,请看下面的。
trkzrq 2007-9-29 13:10
4
0
这个回帖还是有问题,请看下面的。
trkzrq 2007-9-29 13:14
5
0
明白了,谢谢2楼朋友

lkd> dd KeServiceDescriptorTable
8055c6e0  80504940 00000000 0000011c 80504db4
8055c6f0  00000000 00000000 00000000 00000000
8055c700  00000000 00000000 00000000 00000000
8055c710  00000000 00000000 00000000 00000000
8055c720  00000002 00002710 bf80c247 00000000
8055c730  847f93e0 f4fbc9e0 83f30d24 806f5040
8055c740  00000000 00000000 ffeced30 ffffffff
8055c750  7376d8f0 01c80235 00000000 00000000

80504940 + 0x7A * 4 = 80504B28

lkd> dd 80504B28
80504b28  805cacfe 805ecfc4 805ecbca 805a9ec2
80504b38  80613ff2 805c487e 805caf8a 805ecfe2
80504b48  805ecd3a 80615f3a 806441dc 805c8dec
80504b58  805f739e 805f2fe6 805f31d2 805b7e52
80504b68  8060dfea 80576d64 806158da 806158da
80504b78  8053fe06 8060fbbc 8061081c 80579cb2
80504b88  805bdf8a 8057a000 8060e0b2 80576e9c
80504b98  80615076 8057a86c 805d54a2 805a4eb8

lkd> u 805cacfe
nt!NtOpenProcess:
805cacfe 68c4000000      push    0C4h
805cad03 68a0b44d80      push    offset nt!FsRtlLegalAnsiCharacterArray+0x1ff0 (804db4a0)
805cad08 e8c310f7ff      call    nt!wctomb+0x45 (8053bdd0)
805cad0d 33f6            xor     esi,esi
805cad0f 8975d4          mov     dword ptr [ebp-2Ch],esi
805cad12 33c0            xor     eax,eax
805cad14 8d7dd8          lea     edi,[ebp-28h]
805cad17 ab              stos    dword ptr es:[edi]
lkd>

而直接反汇编NtOpenProcess得到

lkd> u nt!NtOpenProcess
nt!NtOpenProcess:
805cacfe 68c4000000      push    0C4h
805cad03 68a0b44d80      push    offset nt!FsRtlLegalAnsiCharacterArray+0x1ff0 (804db4a0)
805cad08 e8c310f7ff      call    nt!wctomb+0x45 (8053bdd0)
805cad0d 33f6            xor     esi,esi
805cad0f 8975d4          mov     dword ptr [ebp-2Ch],esi
805cad12 33c0            xor     eax,eax
805cad14 8d7dd8          lea     edi,[ebp-28h]
805cad17 ab              stos    dword ptr es:[edi]

805cacfe这个就是OpenProcess系统服务函数的所在,原来是这样的,呵呵。
trkzrq 2007-9-29 13:16
6
0
我晕,不会用论坛的编辑功能,结果把一个回贴弄成这样了,罪过罪过。
游客
登录 | 注册 方可回帖
返回