lghtly
驱动牛犊
驱动牛犊
  • 注册日期2004-10-14
  • 最后登录2005-11-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2248回复:9

谢谢!!!急!!!如何获取KeServiceDescriptorTableShadow中对应于win32k.sys中函数的服务号

楼主#
更多 发布于:2005-04-14 21:42
如何获取KeServiceDescriptorTableShadow中对应于win32k.sys中函数的服务号,例如
NtUserQueryWindow()是win32k.sys中输出的一个函数,如何获取其在KeServiceDescriptorTableShadow
中的服务号?有对于任意函数的方法吗???谢谢!!!急!!!
还有一个问题,在内核中如何获取系统时间?
KMK
KMK
驱动大牛
驱动大牛
  • 注册日期2001-09-12
  • 最后登录2017-10-06
  • 粉丝2
  • 关注0
  • 积分42分
  • 威望404点
  • 贡献值2点
  • 好评度58点
  • 原创分1分
  • 专家分1分
  • 社区居民
沙发#
发布于:2005-04-14 22:51
原理是一样的 !!

http://www.xfocus.net/articles/200503/783.html

在Undoc windows 2000 secrets里也自例子 !!
guoshumin168
驱动牛犊
驱动牛犊
  • 注册日期2005-04-13
  • 最后登录2005-04-15
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2005-04-15 08:53
ISO8583
银行卡的交易规范

有的朋友就给个连接,或者告诉我哪里可以找到
春天我把老婆埋在地底下,到了秋天我就有很多老婆了……
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
地板#
发布于:2005-04-15 09:42
如何获取KeServiceDescriptorTableShadow中对应于win32k.sys中函数的服务号,例如
NtUserQueryWindow()是win32k.sys中输出的一个函数,如何获取其在KeServiceDescriptorTableShadow
中的服务号?有对于任意函数的方法吗???谢谢!!!急!!!
还有一个问题,在内核中如何获取系统时间?

用KMK大虾的也行,不过建议如下:
其实跟踪KiSystemService你会发现服务号0xfff以下属于KeServiceDescriptorTable,0xfff以上属于KeServiceDescriptorTableShadow,而且可以找到这个表,虽然xp已经不用int 2e进入ring 0,但是KiSystemService还是idt中的2eh的handler,至于获取系统时间,KeQuerySystemTime,以前的帖子太多了,而且还有转换函数
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
qiangguo64
驱动牛犊
驱动牛犊
  • 注册日期2005-01-12
  • 最后登录2009-08-28
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望15点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2005-04-15 12:09
我发现一个简单的方法,用ICE就能看到,一般直接用ntcall显示的是ntoskrnl导出的服务好,看不到0xfff以上的,但是如果在int2e设一个断点,在进入断点的时候,再用ntcall,就能看到win32k.sys中函数的服务号,只要是断到win32k.sys导出的函数,就能看见,在w2k和xp下没问题
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2005-04-15 15:10
我发现一个简单的方法,用ICE就能看到,一般直接用ntcall显示的是ntoskrnl导出的服务好,看不到0xfff以上的,但是如果在int2e设一个断点,在进入断点的时候,再用ntcall,就能看到win32k.sys中函数的服务号,只要是断到win32k.sys导出的函数,就能看见,在w2k和xp下没问题

嘿嘿,不是新发现,早就在用了...
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
qiangguo64
驱动牛犊
驱动牛犊
  • 注册日期2005-01-12
  • 最后登录2009-08-28
  • 粉丝0
  • 关注0
  • 积分144分
  • 威望15点
  • 贡献值1点
  • 好评度14点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2005-04-15 16:42
[quote]我发现一个简单的方法,用ICE就能看到,一般直接用ntcall显示的是ntoskrnl导出的服务好,看不到0xfff以上的,但是如果在int2e设一个断点,在进入断点的时候,再用ntcall,就能看到win32k.sys中函数的服务号,只要是断到win32k.sys导出的函数,就能看见,在w2k和xp下没问题

嘿嘿,不是新发现,早就在用了... [/quote]

对于我来说,可是新发现啊,你老人家在上面的回帖中也不说
lghtly
驱动牛犊
驱动牛犊
  • 注册日期2004-10-14
  • 最后登录2005-11-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2005-04-15 22:09
谢谢各位的帮助,可对于W32k.sys中的函数来说,连原型都没有,也就是说反汇编根本看不到NtQueryWindow()等函数名,如何找呢?这些函数与ntdll.dll中的函数不同,ntdll.dll中有函数原型
bmyyyud
驱动老牛
驱动老牛
  • 注册日期2002-02-22
  • 最后登录2010-01-21
  • 粉丝0
  • 关注0
  • 积分1000分
  • 威望130点
  • 贡献值0点
  • 好评度106点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2005-04-16 10:05
谢谢各位的帮助,可对于W32k.sys中的函数来说,连原型都没有,也就是说反汇编根本看不到NtQueryWindow()等函数名,如何找呢?这些函数与ntdll.dll中的函数不同,ntdll.dll中有函数原型

其实只要你有ntdll.dll中的函数原型,直接跟踪一下,发现其实很多ntdll.dll中的函数不过是一个小wrap,功能号在AX中,DX指向传递参数的堆栈,然后一个sysenter就进了ring 0,这样你还写不出W32k.sys中的函数的原型吗?
滚滚长江东逝水 浪花淘尽英雄 是非成败转头空 青山依旧在 几度夕阳红 白发渔樵江渚上 惯看秋月春风 一壶浊酒喜相逢 古今多少事 尽付笑谈中
lghtly
驱动牛犊
驱动牛犊
  • 注册日期2004-10-14
  • 最后登录2005-11-29
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2005-04-19 17:08
把这个问题换个提法,如何用程序找到KeServiceDescriptorTableShadow中每个服务号对应的函数名称?
游客

返回顶部