dccrazyboy
驱动牛犊
驱动牛犊
  • 注册日期2011-08-16
  • 最后登录2012-03-20
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望11点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1716回复:1

请问如何找SSDT Shadow里面函数的服务号

楼主#
更多 发布于:2012-03-09 11:10
通过dd KeServiceDescriptorTable - 0x40我找到了Shadow地址
0: kd> dd KeServiceDescriptorTable - 0x40
8055c6a0  80504940 00000000 0000011c 80504db4
8055c6b0  bf998300 00000000 0000029b bf999010
8055c6c0  00000000 00000000 00000000 00000000
8055c6d0  00000000 00000000 00000000 00000000
8055c6e0  80504940 00000000 0000011c 80504db4
8055c6f0  00000000 00000000 00000000 00000000
8055c700  00000000 00000000 00000000 00000000
8055c710  00000000 00000000 00000000 00000000

KeServiceDescriptorTableShadow为bf998300,长度为0000029b


然后 dd bf998300 l29b
1: kd> dds bf998300 L0000029b
bf998300  bf934921 win32k!NtGdiAbortDoc
bf998304  bf94648d win32k!NtGdiAbortPath
bf998308  bf875acc win32k!NtGdiAddFontResourceW
bf99830c  bf93e045 win32k!NtGdiAddRemoteFontToDC
bf998310  bf947aa4 win32k!NtGdiAddFontMemResourceEx
bf998314  bf934b85 win32k!NtGdiRemoveMergeFont
bf998318  bf934c2a win32k!NtGdiAddRemoteMMInstanceToDC
bf99831c  bf83db86 win32k!NtGdiAlphaBlend
bf998320  bf9473cb win32k!NtGdiAngleArc
bf998324  bf9333c0 win32k!NtGdiAnyLinkedFonts
bf998328  bf9479c3 win32k!NtGdiFontIsLinked
bf99832c  bf90e069 win32k!NtGdiArcInternal
bf998330  bf900b0d win32k!NtGdiBeginPath
bf998334  bf80bb8a win32k!NtGdiBitBlt
bf998338  bf947895 win32k!NtGdiCancelDC
bf99833c  bf949091 win32k!NtGdiCheckBitmapBits
bf998340  bf8ff40a win32k!NtGdiCloseFigure
bf998344  bf87c9b6 win32k!NtGdiClearBitmapAttributes
....

找到了他的各种函数,但是请问怎样通过函数名找出他的服务号啊?
我记得SSDT里面用这个宏就行了
#define SYSCALL_INDEX(ServiceFunction) (*(PULONG)((PUCHAR)ServiceFunction + 1))
但是Shadow里面的函数貌似没有Zw系的。。请问怎么找他的服务号

AioliaSky
驱动牛犊
驱动牛犊
  • 注册日期2012-06-14
  • 最后登录2012-10-25
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望141点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2012-06-14 03:09
没法找
但是同一个操作系统
SSDT Shadow服务号都是固定的
游客

返回顶部