天啊,我Hook的ZwCreateFile的文件名到底在哪里啊。。。
我Hook了ZwCreateFile,通过
DbgPrint("HookZwCreateFile:%wZ\n",ObjectAttributes->ObjectName);
可以打印目录名称,后来发贴请问如何得到文件名:
http://topic.csdn.net/u/20080821/15/36e51142-4e57-4735-b51f-8b2fee796b63.html
得知文件名称是在ObjectAttrubutes->RootDirectory中,问题是ObjectAttrubutes->RootDirectory == NULL,使用ObReferenceObjectByHandle得到的结果是STATUS_INVALID_HANDLE。。。
唉,这两天快被驱动弄疯了。。。
我如果在ZwCreateFile中直接返回STATUS_OBJECT_NAME_NOT_FOUND,文件管理器创建文件是不能成功的,说明创建文件还是经过了我的Hook函数,问题是文件名在哪里啊。。。
驱动大牛显个身,谢谢啦。。。