smyuuu
驱动牛犊
驱动牛犊
  • 注册日期2007-01-13
  • 最后登录2011-07-15
  • 粉丝0
  • 关注0
  • 积分11分
  • 威望63点
  • 贡献值0点
  • 好评度34点
  • 原创分0分
  • 专家分0分
阅读:3838回复:5

再问:驱动级hook和应用层hook同时hook一个API 那个会起作用.(菜鸟问题)

楼主#
更多 发布于:2007-01-15 15:58
  如题
123456789012
驱动牛犊
驱动牛犊
  • 注册日期2006-04-07
  • 最后登录2009-11-08
  • 粉丝0
  • 关注0
  • 积分80分
  • 威望61点
  • 贡献值0点
  • 好评度60点
  • 原创分1分
  • 专家分0分
沙发#
发布于:2007-01-15 18:34
都会起作用。驱动Hook是全局的,应用Hook是局部的。
xyzreg
驱动小牛
驱动小牛
  • 注册日期2005-06-20
  • 最后登录2009-12-06
  • 粉丝0
  • 关注0
  • 积分294分
  • 威望173点
  • 贡献值0点
  • 好评度164点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-01-15 18:36
举个例子,CreateFile流程是这样: CreateFile->Zw/NtCreateFile(Ring3 ntdll.dll)---(int 2e/sysenter)-->NtCreateFile(Ring 0)--(I/O管理器,IRP)-->文件系统驱动--(I/O管理器,IRP)->卷管理驱动---(I/O管理器,IRP)-->磁盘驱动disk.sys

如果你在Ring3下hook了目标进程空间的CreateFile,又在Ring0下挂钩了SDT表中的NtCreateFile系统服务,还又挂钩了ntfs.sys,则Ring3下的目标程序调用CreateFile时就会先执行你的挂钩函数MyRing3CreateFile。如果你的挂钩函数继续往下转发,下面的钩子就会起作用;如果MyRing3CreateFile直接return而没继续调用原来系统CreateFile则下面的钩子就不起作用。
ks12345
驱动小牛
驱动小牛
  • 注册日期2006-09-21
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望223点
  • 贡献值0点
  • 好评度189点
  • 原创分0分
  • 专家分0分
地板#
发布于:2007-01-26 15:28
good
Thinking
learnabcd
驱动牛犊
驱动牛犊
  • 注册日期2007-09-13
  • 最后登录2007-09-15
  • 粉丝0
  • 关注0
  • 积分30分
  • 威望4点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2007-09-15 00:28
引用第2楼xyzreg于2007-01-15 18:36发表的  :
举个例子,CreateFile流程是这样: CreateFile->Zw/NtCreateFile(Ring3 ntdll.dll)---(int 2e/sysenter)-->NtCreateFile(Ring 0)--(I/O管理器,IRP)-->文件系统驱动--(I/O管理器,IRP)->卷管理驱动---(I/O管理器,IRP)-->磁盘驱动disk.sys

如果你在Ring3下hook了目标进程空间的CreateFile,又在Ring0下挂钩了SDT表中的NtCreateFile系统服务,还又挂钩了ntfs.sys,则Ring3下的目标程序调用CreateFile时就会先执行你的挂钩函数MyRing3CreateFile。如果你的挂钩函数继续往下转发,下面的钩子就会起作用;如果MyRing3CreateFile直接return而没继续调用原来系统CreateFile则下面的钩子就不起作用。


这样解释很好懂。这么看来没有绝对有效的钩子了。
qq_10652
驱动牛犊
驱动牛犊
  • 注册日期2004-11-11
  • 最后登录2008-07-04
  • 粉丝0
  • 关注0
  • 积分560分
  • 威望57点
  • 贡献值0点
  • 好评度57点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2007-09-17 01:10
对付应用程序,当然应用级先起作用了,程序就不让它跑起来,再强也白给。
游客

返回顶部