troylees
驱动牛犊
驱动牛犊
  • 注册日期2006-05-10
  • 最后登录2009-05-01
  • 粉丝0
  • 关注0
  • 积分678分
  • 威望128点
  • 贡献值0点
  • 好评度67点
  • 原创分0分
  • 专家分0分
阅读:3398回复:4

请教:Hook了ZwWriteFile后无法用原来的ZwWriteFile函数写文件的问题

楼主#
更多 发布于:2007-05-12 17:47
大家好,我在驱动里面Hook了ZwCreateFile和ZwWriteFile,发现都无法调用原来的函数创建文件和写入文件了,调用RealCreateFile的话会返回STATUS_ACCESS_VIOLATION或者STATUS_INVALID_PARAMETER的错误,我在另外一个贴中有说明:

http://bbs.driverdevelop.com/htm_data/16/0705/101781.html

如果调用RealWriteFile的话则返回STATUS_INVALID_HANDLE的错误。而如果没有Hook了ZwCreateFile和ZwWriteFile函数的话,发现操作是成功的,但现在必须Hook这两个函数,然后作一下记录再写入文件,请问大家有什么方法呢?谢谢大家

最新喜欢:

linshierlinshi...
scutfang
驱动牛犊
驱动牛犊
  • 注册日期2007-03-18
  • 最后登录2008-02-29
  • 粉丝0
  • 关注0
  • 积分90分
  • 威望10点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2007-05-19 15:00
楼主,我跟你遇到的问题是一样的,不知道你的问题解决了么?qq:94381267
我也发了一个帖子,http://bbs.driverdevelop.com/htm_data/98/0705/102006.html
meilimeimei
驱动牛犊
驱动牛犊
  • 注册日期2006-05-16
  • 最后登录2013-02-25
  • 粉丝0
  • 关注0
  • 积分3分
  • 威望72点
  • 贡献值0点
  • 好评度50点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2007-05-29 01:45
返回c0000005错误的原因是 因为你传递给ZwCreateFile的参数 的地址是 大于
MM_USER_PROBE_ADDRESS,就是NtCreateFile的1,3,4参数及OBJECT_ATTRIBUTES.ObjectName.Buffer这几个指针,

用到指针的地方都用ZwAllocateVirtualMemory来申请内存作为参数,不要用局部变量

因为在内部函数IopCreateFile中会对传入参数进行判断
super9
驱动牛犊
驱动牛犊
  • 注册日期2008-08-06
  • 最后登录2009-04-29
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望99点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2008-10-11 15:51
引用第2楼meilimeimei于2007-05-29 01:45发表的  :
返回c0000005错误的原因是 因为你传递给ZwCreateFile的参数 的地址是 大于
MM_USER_PROBE_ADDRESS,就是NtCreateFile的1,3,4参数及OBJECT_ATTRIBUTES.ObjectName.Buffer这几个指针,

用到指针的地方都用ZwAllocateVirtualMemory来申请内存作为参数,不要用局部变量

.......

这个地方ZwAllocateVirtualMemory具体该怎么用啊?谢谢诶!
WQXNETQIQI
驱动大牛
驱动大牛
  • 注册日期2006-06-12
  • 最后登录2010-10-26
  • 粉丝0
  • 关注0
  • 积分13分
  • 威望1076点
  • 贡献值0点
  • 好评度895点
  • 原创分1分
  • 专家分0分
地下室#
发布于:2008-10-11 17:33
不要用ALLOCATE MEMORY这么白痴的办法,参考此贴我的回复:
http://bbs.driverdevelop.com/htm_data/16/0809/113576.html
驱动开发者 呵呵
游客

返回顶部