首页
社区
课程
招聘
[求助]ZwQueryValueKey 蓝屏
发表于: 2009-9-6 09:15 6676

[求助]ZwQueryValueKey 蓝屏

2009-9-6 09:15
6676
HANDLE hKey = NULL;

        UNICODE_STRING key_name = RTL_CONSTANT_STRING(L"SystemRoot");
        UNICODE_STRING key_path = RTL_CONSTANT_STRING(L"\\Registry\\Machine\\SOFTWARE\\MicroSoft\\Windows NT\\CurrentVersion");
        OBJECT_ATTRIBUTES object_attr;
        KEY_VALUE_PARTIAL_INFORMATION keyInfo;
        PKEY_VALUE_PARTIAL_INFORMATION pKeyInfo;
        ULONG ulLength;

        InitializeObjectAttributes(&object_attr,&key_path,OBJ_CASE_INSENSITIVE ,NULL,NULL);
        status = ZwOpenKey(&hKey,
                KEY_READ,
                &object_attr);
        if (!NT_SUCCESS(status))
        {
                goto last;
        }
        status = ZwQueryValueKey(hKey,
                &key_name,
                KeyValuePartialInformation,
                &keyInfo,
                sizeof(KEY_VALUE_PARTIAL_INFORMATION),
                &ulLength);
        if (!NT_SUCCESS(status)  && status != STATUS_BUFFER_OVERFLOW && status != STATUS_BUFFER_TOO_SMALL)
        {

                goto last;
        }
        pKeyInfo = (PKEY_VALUE_PARTIAL_INFORMATION)ExAllocatePoolWithTag(NonPagedPool,ulLength,'TAG');
        if (pKeyInfo == NULL)
        {
                status = STATUS_INSUFFICIENT_RESOURCES;
                goto last;
        }
        status = ZwQueryValueKey(hKey,
                &key_name,
                KeyValuePartialInformation,
                &keyInfo,
                ulLength,
                &ulLength);

       
last:
        if (hKey != NULL)
        {
        ZwClose(hKey);
        }
        if (pKeyInfo != NULL)
        {
                ExFreePool(pKeyInfo);
        }

///////////////////////////////////////////////////////////////////////////////////////////


[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 612
活跃值: (961)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
keyInfo....不蓝才怪呢...
最莫名其妙的是给pKeyInfo分配内存反而不用他!
一般用ZwQueryValueKey,先调用ZwQueryValueKey获取KEY_VALUE_PARTIAL_INFORMATION结构长度,再分配内存,再用ZwQueryValueKey查询值,最后收内存!
2009-9-6 12:22
0
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
3
status = ZwQueryValueKey(hKey,
    &key_name,
    KeyValuePartialInformation,
    &keyInfo,
    ulLength,
    &ulLength);

楼主要仔细~
2009-9-6 15:33
0
雪    币: 20
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
谢谢二位 昨天没上网
2009-9-7 08:28
0
游客
登录 | 注册 方可回帖
返回
//