阅读:4201回复:22
ssdt hook 卸载的时候导致蓝屏(是否与杀毒软件冲突)
我用ssdt hook了某些函数,然后装上防病毒软件,用扫描工具发现他也ssdt hook了函数,有几个和我的一样;我卸载我的驱动程序,蓝屏UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS;但是这个蓝屏很难重现,我重复了很多次,结果只出现2次
现在分析如下:不知道对不对 我hook了某函数x,地址由x替换为我的函数地址A,地址x被保存至变量 防病毒软件也hook函数x,将A地址替换了他的地址B; 现在系统调用关系:B--》A----》x 现在卸载A的时候,正好系统调用走只A,A地址无效导致蓝屏? 不知道此分析对不对 有没有什么解决方法啊 谢谢 |
|
沙发#
发布于:2007-11-19 23:55
增加调用引用计数,在卸载时等待调用完成即可
|
|
|
板凳#
发布于:2007-11-19 23:55
随便说一下,版上讨论过几次了,而且还有源码
|
|
|
地板#
发布于:2007-11-20 09:31
另外楼主的分析也是非常有可能的。B -> A -> X,结果A被卸载了。
|
|
地下室#
发布于:2007-11-20 10:10
卸载A的时候要保证B不是正好在执行,这样当A卸载后,X的地址还原成了A以前的,B就废掉了
|
|
5楼#
发布于:2007-11-20 13:37
别SSDT了,已经END OF THE ROAD了,换点新方法吧。
|
|
|
6楼#
发布于:2007-11-20 13:42
赶快换上NSI PROVIDER HOOK吧,适应全新VISTA网络体系哦!
|
|
|
7楼#
发布于:2007-11-20 13:48
引用第1楼znsoft于2007-11-19 23:55发表的 : 处理得太简单的话,还是有可能蓝屏的 |
|
8楼#
发布于:2007-11-20 14:23
如果要使用MS建议的方法,请参考:http://blogs.msdn.com/windowsvistasecurity/archive/2006/08/11/695993.aspx
如果需要技术支持请联系:msra@microsoft.com |
|
9楼#
发布于:2007-11-20 18:42
我也遇到过类似的问题,也加入了引用计数,基本上不会蓝屏了,但是偶尔,几率非常小,还是会出现蓝屏
|
|
10楼#
发布于:2007-11-20 18:44
搂主如果想让你的蓝屏出现的更多的话,把CPU到100%,在卸载驱动,基本都会蓝的.
|
|
11楼#
发布于:2007-11-20 19:35
引用第6楼WQXNETQIQI于2007-11-20 13:42发表的 : 此路可通~哎~~ |
|
|
12楼#
发布于:2007-11-20 22:55
怎么加入计数啊?能否给点代码提示
|
|
13楼#
发布于:2007-11-21 10:36
楼上各位,把你们过时的技术都送给我吧,我跟不上时代,也不嫌其旧。
|
|
14楼#
发布于:2007-11-25 23:26
引用第5楼wowocock于2007-11-20 13:37发表的 : 对于我们这些才学习的人还是很有用的嘛,总得有个入口点嘛,呵呵 |
|
|
15楼#
发布于:2007-12-07 16:11
:-)
|
|
|
16楼#
发布于:2007-12-07 20:01
驱动从不卸载~~而且直接下发走真实SSDT,很少读取xxx~~hook淫荡的xxxx函数们(无导出啊无导出)
|
|
|
17楼#
发布于:2007-12-08 11:36
事实告诉我们,不走寻常路,才能不蓝屏
|
|
|
18楼#
发布于:2007-12-09 02:24
不走寻常路,才能不蓝屏
不走寻常路,才能不蓝屏 很好的评论~~ 、 |
|
|
19楼#
发布于:2007-12-17 14:20
开头InterlockedIncrement增加记数..
末尾InterlockedDecrement减少引用记数,,, 最后比较是否为0,在确认卸载 |
|
上一页
下一页