首页
社区
课程
招聘
[原创]FUTO_enhanced点滴笔记
发表于: 2008-2-19 00:03 10381

[原创]FUTO_enhanced点滴笔记

2008-2-19 00:03
10381
[FONT=新宋体]POBJECT_TYPE 
FindObjectTypes (char *ac_tName)
{
OBJECT_ATTRIBUTES ObjectAttributes;
UNICODE_STRING ucName, ufName;
       ANSI_STRING afName;
NTSTATUS ntStatus;
HANDLE hDirectory = NULL;
POBJECT_DIRECTORY pDirectoryObject = NULL;
POBJECT_DIRECTORY_ENTRY DirectoryEntry;
       POBJECT_HEADER objHead;
ULONG Bucket = 0;
       DWORD d_size;
       PUNICODE_STRING p_wcName;

       p_wcName = (PUNICODE_STRING) ExAllocatePool(PagedPool, \
            sizeof(UNICODE_STRING)+(sizeof(WCHAR)*1024));
       if (p_wcName == NULL)
            return NULL;

       p_wcName->Length = 0;
       p_wcName->MaximumLength = 1022;
       p_wcName->Buffer = (PWSTR)((DWORD)p_wcName + sizeof(UNICODE_STRING));

       RtlInitAnsiString(&afName, ac_tName);
      
       // open driver directory in the object directory
RtlInitUnicodeString(&ucName,L"\\ObjectTypes");
InitializeObjectAttributes(&ObjectAttributes,&ucName,OBJ_CASE_INSENSITIVE,NULL,NULL);
ntStatus = ObOpenObjectByName(&ObjectAttributes,
                                                               NULL,
                                                               KernelMode,
                                                               NULL,
                                                               0x80000000,
                                                               NULL,
                                                               &hDirectory);
if (!NT_SUCCESS (ntStatus))
       return NULL;

// get pointer from handle
ntStatus = ObReferenceObjectByHandle(hDirectory,
                                             FILE_ANY_ACCESS,
                                                                              NULL,
                                                                              KernelMode,
                                                                              &pDirectoryObject,
                                                                     NULL);
       ZwClose (hDirectory);
if (!NT_SUCCESS (ntStatus))
            return NULL;

       ntStatus = RtlAnsiStringToUnicodeString(&ufName, &afName, TRUE);
if (!NT_SUCCESS (ntStatus))
            return NULL;
      
// walk the object directory
for (Bucket = 0; Bucket < NUMBER_HASH_BUCKETS; Bucket++) 
{
       DirectoryEntry = pDirectoryObject->HashBuckets[Bucket];
            while (DirectoryEntry != NULL)
            {
                     ntStatus = ObQueryNameString(DirectoryEntry->Object, 
                                                      (POBJECT_NAME_INFORMATION) p_wcName, 
                                                                              p_wcName->MaximumLength, 
                                                                              &d_size);
                     if (NT_SUCCESS (ntStatus))
                     {
                               if (RtlCompareUnicodeString(p_wcName, &ufName, TRUE)==0)
                               {
                                    if (pDirectoryObject)
                                             ObDereferenceObject(pDirectoryObject);
                                    RtlFreeUnicodeString(&ufName);
                                    ExFreePool(p_wcName);
                                    return (POBJECT_TYPE) DirectoryEntry->Object;
                               }
                     }
                     p_wcName->MaximumLength = 1022;
                     DirectoryEntry = DirectoryEntry->ChainLink;
            }
       }

if (pDirectoryObject)
            ObDereferenceObject(pDirectoryObject);
       RtlFreeUnicodeString(&ufName);
       ExFreePool(p_wcName);
return NULL;
}[/FONT]

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (11)
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
基本看不懂,估计我能看懂了我就有长进了呵呵
2008-2-19 00:09
0
雪    币: 248
活跃值: (42)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
好帖怎能不顶
2008-2-19 00:52
0
雪    币: 66
活跃值: (15)
能力值: ( LV9,RANK:330 )
在线值:
发帖
回帖
粉丝
4
学      习
2008-2-19 09:25
0
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
5
古老的还是算了,,,来点新颖的,,,
2008-2-19 09:31
0
雪    币: 321
活跃值: (275)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
6
学习,感谢大米的热情分享。其实,只要window版本不更新,古老的办法还是有效的。
2008-2-20 09:12
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
7
大米是dummy啊,LZ是素大米。。。肉大米在哪里
2008-2-20 15:03
0
雪    币: 709
活跃值: (2575)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
8
汗, 俺叫sudami啊.

肉大米在哪里,肉大米在every one's  futrue 老婆那里
2008-2-20 15:14
0
雪    币: 485
活跃值: (12)
能力值: ( LV9,RANK:490 )
在线值:
发帖
回帖
粉丝
9
--苏大秘--不知道有没有人记起他
2008-2-20 16:28
0
雪    币: 321
活跃值: (275)
能力值: ( LV13,RANK:1050 )
在线值:
发帖
回帖
粉丝
10
2008-2-20 23:23
0
雪    币: 6075
活跃值: (2236)
能力值: (RANK:1060 )
在线值:
发帖
回帖
粉丝
11
今天登陆了sudami的blog, 听着优美的背景音乐,禁不住怀念起自己的幼儿园时代。哎,毕业已经12载,感慨人生,真快啊。
2008-2-20 23:28
0
雪    币: 709
活跃值: (2575)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
12
,这音乐能勾起儿提时代的回忆啊 o(*.*)O
2008-2-20 23:40
0
游客
登录 | 注册 方可回帖
返回