Tesla.Angela 发表于 2017-7-15 12:29:15

[讨论]ObQueryNameString在NT5系统上与众不同的套路

大家都知道,ObQueryNameString这个函数非常糟糕,动辄返回失败,甚至导致蓝屏。在今年年初,我还发过一个帖子:《在XP上使用ObQueryNameString查询文件对象发现的大坑》。

先来一段常见的查询对象的代码,在VISTA之后系统可以成功,但是在XP/03上失败:ULONG length = 0;
POBJECT_NAME_INFORMATION buffer = NULL;
NTSTATUS status = ObQueryNameString(pQueryObject,NULL,length,&length);
if(length)
{
        buffer = ExAllocatePool(PagedPool, length);
        if(buffer)
        {
                RtlZeroMemory(buffer,length);
                status = ObQueryNameString(pQueryObject,buffer,length,&length);
                if(NT_SUCCESS(status))
                        DbgPrint("%wZ\n",(PUNICODE_STRING)buffer);
                else
                        DbgPrint("ObQueryNameString-failed: 0x%x\n", status);
                ExFreePool(buffer);
        }
}
else
{
        DbgPrint("ObQueryNameString-return-zero-length: 0x%x\n", status);
}
这是因为,在NT5系统上使用这个函数,需要与众不同的套路。**** Hidden Message *****

tangptr@126.com 发表于 2017-7-15 12:34:36

沙发

CleanLove 发表于 2017-7-15 12:42:56

伪前排,让我来看看这个套路是什么,谢谢楼主分享

meesong 发表于 2017-7-15 12:43:23

板凳?

3207145141 发表于 2017-7-15 12:49:57

学习一下.

kz丶cn 发表于 2017-7-15 12:51:17

自古套路得人心

hzqst 发表于 2017-7-15 12:54:28

不用这个函数很多年了

zjr230506 发表于 2017-7-15 13:10:52

看看套路

flac 发表于 2017-7-15 14:06:19

似乎跟缓冲区长度有关?

a195097 发表于 2017-7-16 02:27:28

谢谢楼主分享

n36437517 发表于 2017-7-16 08:43:02

谢谢分享

brucep555 发表于 2017-7-17 14:12:04

学习学习

lily2997 发表于 2017-7-19 10:13:19

来学习咯

c3358 发表于 2017-7-21 14:50:50

学习一下.

zt8152070 发表于 2017-8-28 10:56:08

看看是啥套路

luqi_44 发表于 2018-6-6 14:46:14

看看

ljia758 发表于 2018-6-8 00:05:29

学习一下。

maktom 发表于 2021-4-25 23:14:14

学习一下

lpmjknj 发表于 2021-6-9 02:27:51

学习一下

蜜蜂 发表于 2021-6-10 22:07:35

看看

kanren 发表于 2022-3-1 14:27:53

学习一下

IBinary 发表于 2022-11-23 15:02:06

学习下新的对象名查找套路.
页: [1]
查看完整版本: [讨论]ObQueryNameString在NT5系统上与众不同的套路