首页
社区
课程
招聘
[求助]调用ObReferenceObjectByHandle后如何判断当前的操作对象是FILE_OBJECT呢?
发表于: 2009-9-16 22:03 5216

[求助]调用ObReferenceObjectByHandle后如何判断当前的操作对象是FILE_OBJECT呢?

2009-9-16 22:03
5216
调用ObReferenceObjectByHandle后,怎么判断倒数第二个参数PVOID *Object 是一个FILE_OBJECT,而不是EPROCESS呢?

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (6)
雪    币: 635
活跃值: (101)
能力值: ( LV12,RANK:420 )
在线值:
发帖
回帖
粉丝
2
object-0x18 :object_header ->objecttype(or objecttypeindex in win7)
2009-9-16 22:50
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
3
POBJECT_HEADER ObjectHeader;

PVOID ReferencedObject;

Status = ObReferenceObjectByHandle(Handle, DesiredAccess, ObjectType, AccessMode, &ReferencedObject, HandleInformation);
        if (NT_SUCCESS(Status))
        {
                ObjectHeader = OBJECT_TO_OBJECT_HEADER(ReferencedObject);
                if (ObjectHeader->Type == ObjectType)   //是文件对象
                {
                        DbgPrint("file object name: %wZ\n",&(ObjectHeader->Type->Name));
    }

搞定,感谢MJ
2009-9-17 02:01
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
4
已经搞定 结贴 ~~  
2009-9-17 03:18
0
雪    币: 251
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
不是有个参数是ObjectType吗,难道它是闹着玩的
2009-9-17 09:44
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
6
参数中那个ObjectType似乎可以是NULL吧,取返回的对象判断比较好
2009-9-17 09:58
0
雪    币: 796
活跃值: (370)
能力值: ( LV9,RANK:380 )
在线值:
发帖
回帖
粉丝
7
嗯,确实需要判断下是否为NULL的情况  :)

多谢各位提示
2009-9-17 10:32
0
游客
登录 | 注册 方可回帖
返回
//