阅读:2248回复:9
谢谢!!!急!!!如何获取KeServiceDescriptorTableShadow中对应于win32k.sys中函数的服务号
如何获取KeServiceDescriptorTableShadow中对应于win32k.sys中函数的服务号,例如
NtUserQueryWindow()是win32k.sys中输出的一个函数,如何获取其在KeServiceDescriptorTableShadow 中的服务号?有对于任意函数的方法吗???谢谢!!!急!!! 还有一个问题,在内核中如何获取系统时间? |
|
沙发#
发布于:2005-04-14 22:51
原理是一样的 !!
http://www.xfocus.net/articles/200503/783.html 在Undoc windows 2000 secrets里也自例子 !! |
|
板凳#
发布于:2005-04-15 08:53
ISO8583
银行卡的交易规范 有的朋友就给个连接,或者告诉我哪里可以找到 |
|
|
地板#
发布于:2005-04-15 09:42
如何获取KeServiceDescriptorTableShadow中对应于win32k.sys中函数的服务号,例如 用KMK大虾的也行,不过建议如下: 其实跟踪KiSystemService你会发现服务号0xfff以下属于KeServiceDescriptorTable,0xfff以上属于KeServiceDescriptorTableShadow,而且可以找到这个表,虽然xp已经不用int 2e进入ring 0,但是KiSystemService还是idt中的2eh的handler,至于获取系统时间,KeQuerySystemTime,以前的帖子太多了,而且还有转换函数 |
|
|
地下室#
发布于:2005-04-15 12:09
我发现一个简单的方法,用ICE就能看到,一般直接用ntcall显示的是ntoskrnl导出的服务好,看不到0xfff以上的,但是如果在int2e设一个断点,在进入断点的时候,再用ntcall,就能看到win32k.sys中函数的服务号,只要是断到win32k.sys导出的函数,就能看见,在w2k和xp下没问题
|
|
5楼#
发布于:2005-04-15 15:10
我发现一个简单的方法,用ICE就能看到,一般直接用ntcall显示的是ntoskrnl导出的服务好,看不到0xfff以上的,但是如果在int2e设一个断点,在进入断点的时候,再用ntcall,就能看到win32k.sys中函数的服务号,只要是断到win32k.sys导出的函数,就能看见,在w2k和xp下没问题 嘿嘿,不是新发现,早就在用了... |
|
|
6楼#
发布于:2005-04-15 16:42
[quote]我发现一个简单的方法,用ICE就能看到,一般直接用ntcall显示的是ntoskrnl导出的服务好,看不到0xfff以上的,但是如果在int2e设一个断点,在进入断点的时候,再用ntcall,就能看到win32k.sys中函数的服务号,只要是断到win32k.sys导出的函数,就能看见,在w2k和xp下没问题 嘿嘿,不是新发现,早就在用了... [/quote] 对于我来说,可是新发现啊,你老人家在上面的回帖中也不说 |
|
7楼#
发布于:2005-04-15 22:09
谢谢各位的帮助,可对于W32k.sys中的函数来说,连原型都没有,也就是说反汇编根本看不到NtQueryWindow()等函数名,如何找呢?这些函数与ntdll.dll中的函数不同,ntdll.dll中有函数原型
|
|
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中的函数的原型吗? |
|
|
9楼#
发布于:2005-04-19 17:08
把这个问题换个提法,如何用程序找到KeServiceDescriptorTableShadow中每个服务号对应的函数名称?
|
|