首页
社区
课程
招聘
[求助]请问SSDT中的索引ID1000以上的函数(NtUserValidateHandleSecure)
发表于: 2008-2-19 23:10 9278

[求助]请问SSDT中的索引ID1000以上的函数(NtUserValidateHandleSecure)

2008-2-19 23:10
9278
索引id没有错,我跟过的,是mov eax, 1248   callxxxxxx --> mov edx,esp  sysenter
dd 8080d8b0+1248*4应该是没有错的,但是之后dd 21ae830f却不对了(内容空)

过程如下:
lkd> dd KeServiceDescriptorTable
8088a500 8080d8b0 00000000 0000011c 80840fc4
8088a510 00000000 00000000 00000000 00000000
8088a520 00000000 00000000 00000000 00000000
8088a530 00000000 00000000 00000000 00000000
8088a540 00000002 00002710 bf80c227 00000000
8088a550 f8cbca80 f86f74a0 83adfa90 80a38040
8088a560 00000000 00000000 ffea8ad6 ffffffff
8088a570 094c9316 01c872f6 00000000 00000000
lkd> dd 8080d8b0+1248*4
808121d0 21ae830f 558b0001 8153e80c c25dffff
808121e0 90900008 8b909090 ec8b55ff 08758b56
808121f0 8b0c46ff 8113e8ce c085ffff e25e840f
80812200 5d5e0000 900004c2 ffffffff 80930288
80812210 80930291 ffffffff 00000000 808a3594
80812220 ffffffff 00000000 80930168 90909090
80812230 ffffffff 8092ee28 8092ee3b 8bf3b70f
80812240 0fc72bc6 d233c2af 0007d0bb 83f3f700
lkd> dd 21ae830f
21ae830f ???????? ???????? ???????? ????????
21ae831f ???????? ???????? ???????? ????????
21ae832f ???????? ???????? ???????? ????????
21ae833f ???????? ???????? ???????? ????????
21ae834f ???????? ???????? ???????? ????????
21ae835f ???????? ???????? ???????? ????????
21ae836f ???????? ???????? ???????? ????????
21ae837f ???????? ???????? ???????? ????????


所以我疑惑了,感觉是不是不是1248*4不应该是乘以四?我感觉这也太大了。。。
翻一下资料Windows XP Build 2600 System Services 中索引编号是这样排列的:
0000~00FF
0100~011B
1000~1299
索引号并不是连续的,所以我感觉直接用1248*4十分不妥。
接着我直接数了NtUserValidateHandleSecure的顺位(第几个)
然后用dd 8080d8b0+顺位数*4,感觉也不对。

那就最后请问各位,如何找到索引编号为1248的函数NtUserValidateHandleSecure的地址?

[课程]Linux pwn 探索篇!

收藏
免费 7
支持
分享
最新回复 (10)
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
2
dd KeServiceDescriptorTableShadow
第2行
2008-2-19 23:47
0
雪    币: 116
活跃值: (220)
能力值: ( LV12,RANK:370 )
在线值:
发帖
回帖
粉丝
3
KeServiceDescriptorTableShadow+248*4
2008-2-20 09:08
0
雪    币: 163
活跃值: (60)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
4
KeServiceDescriptorTableShadow 其实是个数组,Index的高四位表示使用的是这个数组的下标,比如0x1248,就应该是KeServiceDescriptorTableShadow[1].Base + 0x248 * sizeof(ULONG),一般来说使用1下标的函数都在Win32K.sys实现.不知道我说清楚了没
2008-2-20 09:33
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
5
谢谢楼上的,楼上的楼上的,楼上的楼上的楼上的 新手需要你们
lkd> dd KeServiceDescriptorTable
Couldn't resolve error at 'KeServiceDescriptorTable'
lkd> dd KeServiceDescriptorTableShadow
Couldn't resolve error at 'KeServiceDescriptorTableShadow '
这台机器装了360,估计是调不成了(关了360重起仍然不行,原来ring0早已不再干净,成为战场了)。
但是换回以前的机器我猜想结果仍然是:
lkd> dd KeServiceDescriptorTableShadow

Couldn't resolve error at 'KeServiceDescriptorTableShadow '
据我所知KeServiceDescriptorTableShadow并不是导出的,似乎写程序的话extern不了,不清楚在WINDBG里能否用DD看到。
2008-2-20 11:00
0
雪    币: 134
活跃值: (84)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
6
同情一下,我的ring0也是个战场了,我都懒的管了。
2008-2-20 11:29
0
雪    币: 163
活跃值: (60)
能力值: ( LV9,RANK:210 )
在线值:
发帖
回帖
粉丝
7
symbols加载不正确
2008-2-20 11:34
0
雪    币: 257
活跃值: (56)
能力值: ( LV5,RANK:60 )
在线值:
发帖
回帖
粉丝
8
上MSoft下载了WindowsXP-KB835935-SP2-slp-Symbols

安装。

打开Windbg,Ctrl+s,输入了C:\WINDOWS\Symbols,点ok

重新进入后出现:

Microsoft (R) Windows Debugger Version 6.8.0004.0 X86
Copyright (c) Microsoft Corporation. All rights reserved.

Unable to read head of debugger data list
Connected to Windows XP 2600 x86 compatible target, ptr64 FALSE
Symbol search path is: C:\WINDOWS\Symbols
Executable search path is:
*** ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe
KdDebuggerDataBlock not available!
*******************************************************************************
WARNING: Local kernel debugging requires booting with kernel
debugging support (/debug or bcdedit -debug on) to work optimally.
*******************************************************************************
Windows XP Kernel Version 2600 UP Free x86 compatible
Product: WinNt, suite: TerminalServer SingleUserTS
Kernel base = 0x80800000 PsLoadedModuleList = 0x80883620
Debug session time: Wed Feb 20 14:47:31.875 2008 (GMT+8)
System Uptime: 0 days 3:54:28.467
lkd> dd KdDebuggerDataBlock
Couldn't resolve error at 'KdDebuggerDataBlock'
lkd> dd KeServiceDescriptorTable
Couldn't resolve error at 'KeServiceDescriptorTable'


想把这个问题解决因为以后可能要到网吧调程序了.
2008-2-20 14:49
0
雪    币: 709
活跃值: (2420)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
9
2008-2-20 15:18
0
雪    币: 66
活跃值: (16)
能力值: ( LV8,RANK:130 )
在线值:
发帖
回帖
粉丝
10
*** ERROR: Module load completed but symbols could not be loaded for ntoskrnl.exe
2008-2-21 18:48
0
雪    币: 4593
活跃值: (3572)
能力值: ( LV12,RANK:230 )
在线值:
发帖
回帖
粉丝
11
不必装集合的符号包。直接指定环境变量

set _NT_SYMBOL_PATH=X:\<symbols path>;srv*X:\<symbols path>*http://msdl.microsoft.com/download/symbols

或者在kd中.sympath手工指定=后的内容。

还可以一次性同步一次,效果相当于装集合的"最新"符号包

symchk /op /r x:\windows\system32
2008-2-22 09:08
0
游客
登录 | 注册 方可回帖
返回
//