chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
阅读:4327回复:28

怎么Hook ServiceDescriptorTableShadow中的函数?

楼主#
更多 发布于:2007-07-17 20:08
首先我找到了KeServiceDescriptorTableShadow的地址
然后根据它找到了win32k(由win32k.sys导出的)的表的地址,如0xbf997600
但我一访问这个地址就蓝屏了,WHY?
wangjianfeng
驱动小牛
驱动小牛
  • 注册日期2004-05-28
  • 最后登录2013-10-02
  • 粉丝0
  • 关注0
  • 积分1002分
  • 威望263点
  • 贡献值0点
  • 好评度260点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-12-02 19:30
暴力搜Shadow,找到后就可以了.
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
板凳#
发布于:2007-12-01 11:05
Rtlxxxx,,老V太XX~
zzz hook很好使~
驱动开发者 呵呵
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
地板#
发布于:2007-12-01 00:58
引用第25楼wowocock于2007-11-29 08:30发表的  :
把2K,NT4,WRK里的东西好好挖掘下吧,能HOOK的地方很多阿。

调用函数后调用RtlXXX函数看看Stack,发现某xx可以就bugcheck~~嘿嘿,hook啥~~
没有战争就没有进步 X3工作组 为您提供最好的军火
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2007-11-29 08:30
把2K,NT4,WRK里的东西好好挖掘下吧,能HOOK的地方很多阿。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
5楼#
发布于:2007-11-28 22:44
MJ有新办法::
hook zzz系列函数
没有战争就没有进步 X3工作组 为您提供最好的军火
xyzreg
驱动小牛
驱动小牛
  • 注册日期2005-06-20
  • 最后登录2009-12-06
  • 粉丝0
  • 关注0
  • 积分294分
  • 威望173点
  • 贡献值0点
  • 好评度164点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2007-11-28 13:34
引用第22楼wdnfa于2007-11-25 23:29发表的  :


还是不知道VXK和KILLVXK啥关系,,莫非是两朋友在对挑技术..

一个是男的,一个是女的。不过是同一个人。哈哈
wdnfa
驱动牛犊
驱动牛犊
  • 注册日期2007-10-16
  • 最后登录2008-12-09
  • 粉丝0
  • 关注0
  • 积分250分
  • 威望29点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2007-11-25 23:29
引用第21楼killvxk于2007-11-25 11:50发表的  :


不用担心~


还是不知道VXK和KILLVXK啥关系,,莫非是两朋友在对挑技术..
驱网无线,快乐无限
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
8楼#
发布于:2007-11-25 11:50
引用第19楼wdnfa于2007-11-24 19:24发表的  :

这个函数调用太频繁了吧,不过够狠,VXK和KILLVXK是啥关系的索


不用担心~
没有战争就没有进步 X3工作组 为您提供最好的军火
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
9楼#
发布于:2007-11-25 11:49
引用第18楼guaiguaiguan于2007-11-22 14:22发表的  :
现在已经全部改用Ki*拦截了,确实很方便,不用修改??dt表,处理比较优先,恢复比较容易。无论是shadow还是非shadow都能从容处理。
大概看了一下卡巴斯基的klif.sys驱动程序,发现
KeAttachProcess((PKPROCESS)EProcess, &ApcState);

Csrss.exe好像是与hook过程相关,在替换函数实现中没有见到KeAttachProcess调用。是不是在newNtUserSetWindowsHook中不需要调用KeAttachProcess切换进程上下文,即可弹框?那么如何让询问框关闭返回newNtUserSetWindowsHook后,内存不被切换出去啊?知道的,帮帮讲讲,谢谢~~


NtUser使用的时候是在进程空间内的~否则NtUser是会失败的~所以不要Attach~~
闪人~
没有战争就没有进步 X3工作组 为您提供最好的军火
wdnfa
驱动牛犊
驱动牛犊
  • 注册日期2007-10-16
  • 最后登录2008-12-09
  • 粉丝0
  • 关注0
  • 积分250分
  • 威望29点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2007-11-24 19:24
引用第17楼killvxk于2007-11-22 13:47发表的  :
用KiSystemService Hook多方便~~

这个函数调用太频繁了吧,不过够狠,VXK和KILLVXK是啥关系的索
驱网无线,快乐无限
guaiguaiguan
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2011-01-12
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望556点
  • 贡献值0点
  • 好评度490点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2007-11-22 14:22
现在已经全部改用Ki*拦截了,确实很方便,不用修改??dt表,处理比较优先,恢复比较容易。无论是shadow还是非shadow都能从容处理。
大概看了一下卡巴斯基的klif.sys驱动程序,发现
KeAttachProcess((PKPROCESS)EProcess, &ApcState);

Csrss.exe好像是与hook过程相关,在替换函数实现中没有见到KeAttachProcess调用。是不是在newNtUserSetWindowsHook中不需要调用KeAttachProcess切换进程上下文,即可弹框?那么如何让询问框关闭返回newNtUserSetWindowsHook后,内存不被切换出去啊?知道的,帮帮讲讲,谢谢~~
killvxk
论坛版主
论坛版主
  • 注册日期2005-10-03
  • 最后登录2014-04-14
  • 粉丝3
  • 关注1
  • 积分1082分
  • 威望2003点
  • 贡献值0点
  • 好评度1693点
  • 原创分2分
  • 专家分0分
12楼#
发布于:2007-11-22 13:47
用KiSystemService Hook多方便~~
没有战争就没有进步 X3工作组 为您提供最好的军火
guaiguaiguan
驱动中牛
驱动中牛
  • 注册日期2003-10-11
  • 最后登录2011-01-12
  • 粉丝0
  • 关注0
  • 积分14分
  • 威望556点
  • 贡献值0点
  • 好评度490点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2007-11-22 12:55
引用第10楼chenting1987于2007-07-20 14:22发表的  :
我按照各位的指点,进入了Csrss.exe的进程空间,这个问题解决了。但我遇到了另一个问题,我想像卡巴一样把NtSetWindowsHookEx给hook掉,我就直接把549那个序号的地址改了。但是我用snipesword这样的工具查看时,好像我并没有hook成功。因为我用这个工具看卡巴是hook成功了的,这个是为什么呢?


楼主能否把你的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;
}
6941941
驱动牛犊
驱动牛犊
  • 注册日期2007-11-11
  • 最后登录2007-11-25
  • 粉丝4
  • 关注0
  • 积分40分
  • 威望5点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
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导出的地址。
我很菜,请多指教,谢谢大家
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2007-07-21 15:16
问题解决了,结贴了哈。
我上面的那个问题是我定位549号函数地址时出了错误,才没有HOOK到!
感谢 bladellz  zhaock WQXNETQIQI packze zzzevazzz 的细心解答!!!!
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2007-07-21 10:53
我做的步骤:
进入Csrss.exe的进程空间
找到序号为549的函数地址
修改为自己函数的地址,在当时看来确实是修改了
退出Csrss.exe的进程空间
我用snipesword查看,并没有hook成功
难道要做一些其他的事??
期待解答啊
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2007-07-21 10:22
怎么没有人解答啦,自己顶一个,期待答案哦
我怎么hook不成功啊?
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2007-07-20 14:24
还有packze 大哥说的最好处理一下ServiceDescriptorTableShadow是什么意思?
chenting1987
驱动牛犊
驱动牛犊
  • 注册日期2006-11-29
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分530分
  • 威望54点
  • 贡献值0点
  • 好评度53点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2007-07-20 14:22
我按照各位的指点,进入了Csrss.exe的进程空间,这个问题解决了。但我遇到了另一个问题,我想像卡巴一样把NtSetWindowsHookEx给hook掉,我就直接把549那个序号的地址改了。但是我用snipesword这样的工具查看时,好像我并没有hook成功。因为我用这个工具看卡巴是hook成功了的,这个是为什么呢?
上一页
游客

返回顶部