devil209
驱动牛犊
驱动牛犊
  • 注册日期2007-01-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分732分
  • 威望94点
  • 贡献值0点
  • 好评度73点
  • 原创分0分
  • 专家分0分
阅读:1216回复:5

关于hook系统调用的疑问

楼主#
更多 发布于:2007-10-01 19:06
我hook了zwcreatefile等几个系统调用,并设置了一个全局计数器,在进入函数例程的时候加一,退出的时候减一,在驱动卸载的时候判断计数器的数值,一般来说刚卸载的时候计数器的值都是大于1的,然后进行等待,有时候计数器在等段时间后会变成0,但有时候还是大于1,不管等多久还是,请问是什么原因呢?
devia
论坛版主
论坛版主
  • 注册日期2005-05-14
  • 最后登录2016-04-05
  • 粉丝3
  • 关注0
  • 积分1029分
  • 威望712点
  • 贡献值1点
  • 好评度555点
  • 原创分8分
  • 专家分4分
沙发#
发布于:2007-10-03 08:44
这样做的目的是什么? 直到你关机这个计数有可能都不会归零
人总在矛盾中徘徊。。。
devil209
驱动牛犊
驱动牛犊
  • 注册日期2007-01-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分732分
  • 威望94点
  • 贡献值0点
  • 好评度73点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-10-08 11:16
主要还是驱动卸载的问题,如果计数器不归零,卸载驱动的时候会出现UNLOADED_WITHOUT_CANCELLING_PENDING_OPERATIONS
wowocock
VIP专家组
VIP专家组
  • 注册日期2002-04-08
  • 最后登录2016-01-09
  • 粉丝16
  • 关注2
  • 积分601分
  • 威望1651点
  • 贡献值1点
  • 好评度1227点
  • 原创分1分
  • 专家分0分
地板#
发布于:2007-10-08 12:30
你下面的家伙一直不返回,当然不会到0,所以就别卸载了,大不了,直接往下传。
花开了,然后又会凋零,星星是璀璨的,可那光芒也会消失。在这样 一瞬间,人降生了,笑者,哭着,战斗,伤害,喜悦,悲伤憎恶,爱。一切都只是刹那间的邂逅,而最后都要归入死亡的永眠
tooflat
论坛版主
论坛版主
  • 注册日期2002-07-08
  • 最后登录2014-03-11
  • 粉丝2
  • 关注0
  • 积分1007分
  • 威望551点
  • 贡献值3点
  • 好评度476点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-10-08 16:07
也许是你的统计/判断有问题
devil209
驱动牛犊
驱动牛犊
  • 注册日期2007-01-25
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分732分
  • 威望94点
  • 贡献值0点
  • 好评度73点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-10-08 22:18
统计判断没问题的,就hook了几个函数,zwcreatefile\zwopenfile\zwreadfile\zwclose\zwsetinformationfile,而且并不是每次卸载的时候都大于零,一般是1,我sleep一会就会边成零,但如果遇到大于1的情况一般sleep以后还是大于1了,我也没做什么功能,基本就是直接掉用系统原来的函数,然后做个统计就是了,难道是zwclose这个函数调用了不是马上返回吗?
游客

返回顶部