阅读:4698回复:11
ObQueryNameString的问题 ?
我使用ObQueryNameString,传入的对象指针是通过一个注册表的句柄获得的,里面空间也是分配了的 ,但是它有时蓝屏了 !这个是什么原因呢 ?
我Hook 了NtSetValueKey,获得了注册表的句柄,我想获得它的注册表键,有其他的办法吗 ? |
|
最新喜欢:linshi... |
沙发#
发布于:2007-11-06 19:04
上代码
|
|
|
板凳#
发布于:2007-11-07 09:38
ObRefRc=ObReferenceObjectByHandle(
FileHandle,//由于Hook了NtWriteFile,这个是NtWriteFile的参数句柄 GENERIC_ALL, NULL, KernelMode, &ReObject, NULL ); Uname=ExAllocatePool(PagedPool, 1024); ObQueryNameStringRc=ObQueryNameString(ReObject,Uname,1024,&actualLen);//这个地方蓝屏了,但只是很少的情况蓝屏 ExFreePool(Uname); ObDereferenceObject(ReObject); |
|
地板#
发布于:2007-11-07 13:42
你都不做参数检查的啊
调一下不就知道怎么回事了~ |
|
|
地下室#
发布于:2007-11-07 15:53
我调过的
对象指针不为空,而且我也分配了空间,但是却蓝屏了 有没有其他办法取代这个函数? |
|
5楼#
发布于:2007-11-07 18:54
ZwQueryInformationFile
|
|
|
6楼#
发布于:2007-11-07 19:52
谢谢WQXNETQIQI
果然不蓝屏了,看来ObQueryNameString不大安全哦 |
|
7楼#
发布于:2007-11-07 22:58
貌似2K上ObQueryNameString有问题~ 参见FILEMON代码里一些注释~
|
|
|
8楼#
发布于:2007-11-08 10:29
我去网上找了一个FileMon的源码,没有发现有这方面的解释呢?
还想再问问ZwQueryInformationFIle里的Handle只能是FileHandle,如果是KeyHandle就是注册表的句柄就不行了,那有什么办法获得注册表的名字呢? |
|
9楼#
发布于:2007-11-08 13:41
老大,举一反三啊。。。ZwQueryKey啦。。。
|
|
|
10楼#
发布于:2007-11-08 18:09
好的,知道了,谢谢,遭BS了
|
|
11楼#
发布于:2008-01-04 16:10
ObQueryNameString 这个你看看这个:
http://www.osronline.com/showThread.cfm?link=25276 ObQueryNameString比较通用对于任何的object..,不需要判断类型... |
|