阅读:3034回复:1
HOOK NtWriteFile碰到的问题,哪位大大指教一下
小弟现在做的一个东西需要拦截几个特定文件的写入,所以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); ........... 哪位大大指点一下迷津啊? |
|
沙发#
发布于:2009-08-04 22:40
终于搞定了,MmMapIoSpace那个多此一举了,去掉后就可以了(还有后面的Unmap),不过不是很清楚原理。。。。。 ,哪位给解释下就好了
|
|