首页
社区
课程
招聘
[求助]驱动编程中ACCESS_MASK 是怎么查到的
发表于: 2014-5-15 16:42 3178

[求助]驱动编程中ACCESS_MASK 是怎么查到的

2014-5-15 16:42
3178
好多函数中都给出了,IN ACCESS_MASK  DesiredAccess
但是没给出,从哪找到这个,比如这个 ObReferenceObjectByHandle函数

NTSTATUS ObReferenceObjectByHandle(
    IN HANDLE  Handle,
    IN ACCESS_MASK  DesiredAccess,
    IN POBJECT_TYPE  ObjectType  OPTIONAL,
    IN KPROCESSOR_MODE  AccessMode,
    OUT PVOID  *Object,
    OUT POBJECT_HANDLE_INFORMATION  HandleInformation  OPTIONAL
    );

DesiredAccess
Specifies the requested types of access to the object. The interpretation of this field is dependent on the object type. Do not use any generic access rights.

注释说依赖于具体类型,但是具体类型的这个又从哪找?

求大神指点指点

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

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
2
句柄代表某个内核对象,可以是文件对象、进程对象、线程对象等等等等。
不同的对象有不同的访问权限,但规律很容易找,线程的就是THREAD_XXX,进程就是PROCESS_XXX
如果你不知道句柄所代表对象的类型是非常麻烦的
但是内核模式下可以不用指定ObjectType,DesiredAccess粗暴点可以用GENERIC_ALL
然而不知道对象类型,又能干什么?
不同的对象有不同的函数可以使用,不能乱用,比如你不能对一个文件句柄进行内存读写。。。
2014-5-15 17:54
0
雪    币: 2161
活跃值: (750)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
硬编码的话倒是可以在取得对象指针后获取对象类型,WRK里有这样的定义

typedef struct _OBJECT_TYPE {
    ERESOURCE Mutex;
    LIST_ENTRY TypeList;
    UNICODE_STRING Name;            // Copy from object header for convenience
    PVOID DefaultObject;
    ULONG Index;
    ULONG TotalNumberOfObjects;
    ULONG TotalNumberOfHandles;
    ULONG HighWaterNumberOfObjects;
    ULONG HighWaterNumberOfHandles;
    OBJECT_TYPE_INITIALIZER TypeInfo;
#ifdef POOL_TAGGING
    ULONG Key;
#endif //POOL_TAGGING
    ERESOURCE ObjectLocks[ OBJECT_LOCK_COUNT ];
} OBJECT_TYPE, *POBJECT_TYPE;

至于有没有函数来使用我就不知道了
2014-5-15 18:16
0
游客
登录 | 注册 方可回帖
返回
//