chinaflyzhou
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望39点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:3034回复:1

HOOK NtWriteFile碰到的问题,哪位大大指教一下

楼主#
更多 发布于:2009-07-15 19:40
小弟现在做的一个东西需要拦截几个特定文件的写入,所以hook ntwritefile来做,
已经可以实现在写入前运行自己的writefile函数,
我用MmMapIoSpace来映射NtWriteFile的WriteBuffer参数,再将WriteBuffer中的内容传到我的应用程序中,这样应该没什么问题吧?
测试中我应用程序把从驱动中传来的数据写成文件和原来的文件做比较,为什么结果不对呢?

代码如下:

char* OutBuffer;
char* buffe;
..........
buffer = (char*)MmMapIoSpace(MmGetPhysicalAddress(void*)WriteBuffer,WriteBufferLength,0);
RtlMoveMemory(OutBuffer,buffer,WriteBufferLength);
MmUnmapIoSpace(buffer,WriteBufferlength);

KeWaitForSingleObject(&Event);
...........

哪位大大指点一下迷津啊?
chinaflyzhou
驱动牛犊
驱动牛犊
  • 注册日期2002-04-08
  • 最后登录2009-10-27
  • 粉丝0
  • 关注0
  • 积分95分
  • 威望39点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2009-08-04 22:40
终于搞定了,MmMapIoSpace那个多此一举了,去掉后就可以了(还有后面的Unmap),不过不是很清楚原理。。。。。 ,哪位给解释下就好了
游客

返回顶部