阅读:1283回复:5
关于hook系统调用的疑问
我hook了zwcreatefile等几个系统调用,并设置了一个全局计数器,在进入函数例程的时候加一,退出的时候减一,在驱动卸载的时候判断计数器的数值,一般来说刚卸载的时候计数器的值都是大于1的,然后进行等待,有时候计数器在等段时间后会变成0,但有时候还是大于1,不管等多久还是,请问是什么原因呢?
|
|
沙发#
发布于:2007-10-03 08:44
这样做的目的是什么? 直到你关机这个计数有可能都不会归零
|
|
|
板凳#
发布于:2007-10-08 11:16
主要还是驱动卸载的问题,如果计数器不归零,卸载驱动的时候会出现UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS
|
|
地板#
发布于:2007-10-08 12:30
你下面的家伙一直不返回,当然不会到0,所以就别卸载了,大不了,直接往下传。
|
|
|
地下室#
发布于:2007-10-08 16:07
也许是你的统计/判断有问题
|
|
5楼#
发布于:2007-10-08 22:18
统计判断没问题的,就hook了几个函数,zwcreatefile\zwopenfile\zwreadfile\zwclose\zwsetinformationfile,而且并不是每次卸载的时候都大于零,一般是1,我sleep一会就会边成零,但如果遇到大于1的情况一般sleep以后还是大于1了,我也没做什么功能,基本就是直接掉用系统原来的函数,然后做个统计就是了,难道是zwclose这个函数调用了不是马上返回吗?
|
|