Quantcast
Channel: 看雪安全论坛
Viewing all articles
Browse latest Browse all 9556

【分享】ACCESS_MASK 定义的编程资料

$
0
0
ACCESS_MASK的定义
在DDK中, ACCESS_MASK是一个ULONG

typedef ULONG ACCESS_MASK;
typedef ACCESS_MASK *PACCESS_MASK;

API操作不同对象时, 需要的ACCESS_MASK 也不同.

访问标记 由通用部分 + 附加部分 组成.

通用访问标记
代码:

//
//  The following are masks for the predefined standard access types
//

#define DELETE                          (0x00010000L)
#define READ_CONTROL                    (0x00020000L)
#define WRITE_DAC                        (0x00040000L)
#define WRITE_OWNER                      (0x00080000L)
#define SYNCHRONIZE                      (0x00100000L)

#define STANDARD_RIGHTS_REQUIRED        (0x000F0000L)

#define STANDARD_RIGHTS_READ            (READ_CONTROL)
#define STANDARD_RIGHTS_WRITE            (READ_CONTROL)
#define STANDARD_RIGHTS_EXECUTE          (READ_CONTROL)

#define STANDARD_RIGHTS_ALL              (0x001F0000L)

#define SPECIFIC_RIGHTS_ALL              (0x0000FFFFL)

//
//  These are the generic rights.
//

#define GENERIC_READ                    (0x80000000L)
#define GENERIC_WRITE                    (0x40000000L)
#define GENERIC_EXECUTE                  (0x20000000L)
#define GENERIC_ALL                      (0x10000000L)

附加访问标记 根据操作对象的不同 而不同.
找到了一篇文章, 详细的阐述了 ACCESS_MASK的定义, 包括通用标记和附加标记.
http://blogs.msdn.com/b/openspecific...structure.aspx

原文附件以后如果下载不到了,可以在本帖下载: 附件 82018

当我们重构或逆向一个工程时, 会遇到一些魔法数. 有关 ACCESS_MASK 的重构和逆向,可以参考本文.

e.g.
重构前:
代码:

        Status = KernelOpenFile(FileFullPath,
                                &hFile,
                                0x100020,
                                0x80,
                                1,
                                1,
                                0x20);

重构后:
代码:

        Status = KernelOpenFile(FileFullPath,
                                &hFile,
                                SYNCHRONIZE | FILE_EXECUTE,
                                0x80,
                                1,
                                1,
                                0x20);

重构后,工程中就不会留下一堆的魔法数. 提高了工程的可读性和可维护性.

上传的附件
文件类型: rar About_the_ACCESS_MASK_Structure.rar (1.31 MB)

Viewing all articles
Browse latest Browse all 9556

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>