阅读:1873回复:9
关于系统阻塞的问题请教各位大牛
HOOK了ZwLoadDriver来监控驱动的加载,用了ZwWaitForSingleObject来等侯应用层的处理,如果是第三方程序调用ZwLoadDriver则程序可以正常运行,无任何问题。
但~如果是用Service.exe来加载驱动,则调用程序会死掉~ 有哪位大牛知道什么原因,需要做何物殊处理么? ![]() 据观察好像是系统进程中使用ZwWaitForSingleObject都会死~ |
|
沙发#
发布于:2007-07-12 14:44
1.service.sys加载驱动,是不是services.exe?
2.调用程序会死掉.什么现象,是不是因为等待的event一直没有返回 3.据观察好像是系统进程中使用ZwWaitForSingleObject都会死.不会! |
|
板凳#
发布于:2007-07-12 18:49
汗~打错了,是用Service.exe加载驱动。
是的,ZwWaitForSingleObject等待的事件没有返回~其后的指令得不到执行。 A程序调用Service.exe来装载驱动,A会失去响应。这时去掉对ZwLoadDriver的HOOK,关掉监控程序。重新运行程序来调用Service.exe的相应功能,仍然不能成功,包括创建服务。显然,Service.exe也应该死掉了~ (注:不通Service.exe,直接调用ZwLoadDriver来装载驱动,可以正常拦截,事件也可以得到响应,无任何问题,所以代码书写BUG的可能性不大,严重怀疑是Service.exe的特殊性造成的。) |
|
地板#
发布于:2007-07-12 19:15
汗~找到原因了~~是我的应用层程序无法打开在Serivce.exe线程空间中创建的事件~所以,导致问题的发生~
![]() 版主老大,这需要如何处理呢? ![]() |
|
地下室#
发布于:2007-07-12 19:39
搜了一大通,也没发现,打开系统进程中所创建事件需要的相关权限~~这需要什么权限呢?
![]() |
|
5楼#
发布于:2007-07-13 11:05
用麻烦的句柄复制方法解决了问题,但应该是可以提升权限来解决的~哪位老大知道需要什么权限还麻烦提醒一下儿,谢谢了。
![]() |
|
6楼#
发布于:2007-07-13 15:36
引用第5楼MuseHero于2007-07-13 11:05发表的 : 那就你自己的进程创建一个事件,然后services.exe的线程来open就可以了吧 |
|
7楼#
发布于:2007-07-13 16:31
简单事情复杂化。
![]() |
|
|
8楼#
发布于:2007-07-14 11:50
引用第6楼galihoo于2007-07-13 15:36发表的 : 这个不行的~~这是需要反向通知的~~由驱动来通知应用,所以你的方法不可取~ |
|
9楼#
发布于:2007-07-14 11:52
引用第7楼wowocock于2007-07-13 16:31发表的 : 汗~~我也这么认为~~但是没办法啊~在应用中就是打不开~ ![]() 除了句柄复制外,我看只有提升应用到系统权限了~可那样也麻烦啊~ 我总认为应该是增加某个权限后就可以了的~只是不知道哪一个,试了N多也不行~ |
|