阅读:4327回复:28
怎么Hook ServiceDescriptorTableShadow中的函数?
首先我找到了KeServiceDescriptorTableShadow的地址
然后根据它找到了win32k(由win32k.sys导出的)的表的地址,如0xbf997600 但我一访问这个地址就蓝屏了,WHY? |
|
驱动小牛
|
沙发#
发布于:2007-12-02 19:30
暴力搜Shadow,找到后就可以了.
|
板凳#
发布于:2007-12-01 11:05
Rtlxxxx,,老V太XX~
zzz hook很好使~ |
|
|
地板#
发布于:2007-12-01 00:58
引用第25楼wowocock于2007-11-29 08:30发表的 : 调用函数后调用RtlXXX函数看看Stack,发现某xx可以就bugcheck~~嘿嘿,hook啥~~ |
|
|
地下室#
发布于:2007-11-29 08:30
把2K,NT4,WRK里的东西好好挖掘下吧,能HOOK的地方很多阿。
|
|
|
5楼#
发布于:2007-11-28 22:44
MJ有新办法::
hook zzz系列函数 |
|
|
6楼#
发布于:2007-11-28 13:34
引用第22楼wdnfa于2007-11-25 23:29发表的 : 一个是男的,一个是女的。不过是同一个人。哈哈 |
|
7楼#
发布于:2007-11-25 23:29
引用第21楼killvxk于2007-11-25 11:50发表的 : 还是不知道VXK和KILLVXK啥关系,,莫非是两朋友在对挑技术.. |
|
|
8楼#
发布于:2007-11-25 11:50
引用第19楼wdnfa于2007-11-24 19:24发表的 : 不用担心~ |
|
|
9楼#
发布于:2007-11-25 11:49
引用第18楼guaiguaiguan于2007-11-22 14:22发表的 : NtUser使用的时候是在进程空间内的~否则NtUser是会失败的~所以不要Attach~~ 闪人~ |
|
|
10楼#
发布于:2007-11-24 19:24
引用第17楼killvxk于2007-11-22 13:47发表的 : 这个函数调用太频繁了吧,不过够狠,VXK和KILLVXK是啥关系的索 |
|
|
11楼#
发布于:2007-11-22 14:22
现在已经全部改用Ki*拦截了,确实很方便,不用修改??dt表,处理比较优先,恢复比较容易。无论是shadow还是非shadow都能从容处理。
大概看了一下卡巴斯基的klif.sys驱动程序,发现 KeAttachProcess((PKPROCESS)EProcess, &ApcState); Csrss.exe好像是与hook过程相关,在替换函数实现中没有见到KeAttachProcess调用。是不是在newNtUserSetWindowsHook中不需要调用KeAttachProcess切换进程上下文,即可弹框?那么如何让询问框关闭返回newNtUserSetWindowsHook后,内存不被切换出去啊?知道的,帮帮讲讲,谢谢~~ |
|
12楼#
发布于:2007-11-22 13:47
用KiSystemService Hook多方便~~
|
|
|
13楼#
发布于:2007-11-22 12:55
引用第10楼chenting1987于2007-07-20 14:22发表的 : 楼主能否把你的NewNtSetWindowsHookEx函数实现贴出来啊?就直接把549那个序号的地址改了是什么意思? NtUserSetWindowsHookEx 在 2000 下服务号 1212h, XP 下 1225h, 2003下是0x1221,VISTA 是0x123D。 和549有什么关系?以前也曾在驱动中拦截过NtSetWindowsHookEx函数,如果直接放行或者拒绝都没有问题,可是如果要弹出窗口让用户选择,返回后就会直接崩掉。我也知道是因为内存已经被置换出去,变得不可访问。也想过使用下面的代码,但没有考虑过切换到csrss.exe 上下文环境。 killvxk巨牛提到过这是我处理方法不对才导致,不过killvxk没有透漏过这方面的细节。所以这个方案把暂时搁置起来。不过我可以参考一下卡巴斯基的驱动程序,也许会有所收获。 PEPROCESS selectedprocess; KAPC_STATE apc_state; RtlZeroMemory(&apc_state,sizeof(apc_state)); KeStackAttachProcess((PVOID)selectedprocess,&apc_state); //local process is much more fun!!!! __try { } __finally { KeUnstackDetachProcess(&apc_state); } } __except(1) { ntStatus=STATUS_UNSUCCESSFUL; break; } |
|
14楼#
发布于:2007-11-22 09:21
请教楼主,是如何成功的
我仔细看了,这个帖子,楼主说,切换到Csrss.exe进程就可以,请帮我看看我的做法为什么不行。 -------------------------------------------------------------------------------------- 我在本地启动WINDBG,然后加载Csrss.exe进程,结果就死机。 -------------------------------------------------------------------------------------- 换了个方法,用虚拟机,连接上以后 0: kd> .process Implicit process is now 80549c00 然后 0: kd> !process 0 0 **** NT ACTIVE PROCESS DUMP **** PROCESS 81ef0280 SessionId: 0 Cid: 0254 Peb: 7ffdf000 ParentCid: 0214 DirBase: 06fee000 ObjectTable: e1386cf8 HandleCount: 312. Image: CSRSS.EXE 然后 0: kd> .process 81ef0280 Implicit process is now 81ef0280 0: kd> .process Implicit process is now 80549c00 结果一看,还是在原来的进程 请问,我的操作对吗,如果不对,应该如何操作,才能正确的看到 win32.sys导出的地址。 我很菜,请多指教,谢谢大家 |
|
15楼#
发布于:2007-07-21 15:16
问题解决了,结贴了哈。
我上面的那个问题是我定位549号函数地址时出了错误,才没有HOOK到! 感谢 bladellz zhaock WQXNETQIQI packze zzzevazzz 的细心解答!!!! |
|
16楼#
发布于:2007-07-21 10:53
我做的步骤:
进入Csrss.exe的进程空间 找到序号为549的函数地址 修改为自己函数的地址,在当时看来确实是修改了 退出Csrss.exe的进程空间 我用snipesword查看,并没有hook成功 难道要做一些其他的事?? 期待解答啊 |
|
17楼#
发布于:2007-07-21 10:22
怎么没有人解答啦,自己顶一个,期待答案哦
我怎么hook不成功啊? |
|
18楼#
发布于:2007-07-20 14:24
还有packze 大哥说的最好处理一下ServiceDescriptorTableShadow是什么意思?
|
|
19楼#
发布于:2007-07-20 14:22
我按照各位的指点,进入了Csrss.exe的进程空间,这个问题解决了。但我遇到了另一个问题,我想像卡巴一样把NtSetWindowsHookEx给hook掉,我就直接把549那个序号的地址改了。但是我用snipesword这样的工具查看时,好像我并没有hook成功。因为我用这个工具看卡巴是hook成功了的,这个是为什么呢?
|
|
上一页
下一页