Monday, March 15, 2021

ACCESS_MASK: Specific rights of NT objects


#define FILE_READ_DATA            ( 0x0001 )    // file & pipe
#define FILE_LIST_DIRECTORY       ( 0x0001 )    // directory
#define FILE_WRITE_DATA           ( 0x0002 )    // file & pipe
#define FILE_ADD_FILE             ( 0x0002 )    // directory
#define FILE_APPEND_DATA          ( 0x0004 )    // file
#define FILE_ADD_SUBDIRECTORY     ( 0x0004 )    // directory
#define FILE_CREATE_PIPE_INSTANCE ( 0x0004 )    // named pipe
#define FILE_READ_EA              ( 0x0008 )    // file & directory
#define FILE_WRITE_EA             ( 0x0010 )    // file & directory
#define FILE_EXECUTE              ( 0x0020 )    // file
#define FILE_TRAVERSE             ( 0x0020 )    // directory
#define FILE_DELETE_CHILD         ( 0x0040 )    // directory
#define FILE_READ_ATTRIBUTES      ( 0x0080 )    // all
#define FILE_WRITE_ATTRIBUTES     ( 0x0100 )    // all
#define FILE_ALL_ACCESS (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | 0x1FF)
#define FILE_GENERIC_READ         (STANDARD_RIGHTS_READ     |\
                                   FILE_READ_DATA           |\
                                   FILE_READ_ATTRIBUTES     |\
                                   FILE_READ_EA             |\
                                   SYNCHRONIZE)
#define FILE_GENERIC_WRITE        (STANDARD_RIGHTS_WRITE    |\
                                   FILE_WRITE_DATA          |\
                                   FILE_WRITE_ATTRIBUTES    |\
                                   FILE_WRITE_EA            |\
                                   FILE_APPEND_DATA         |\
                                   SYNCHRONIZE)
#define FILE_GENERIC_EXECUTE      (STANDARD_RIGHTS_EXECUTE  |\
                                   FILE_READ_ATTRIBUTES     |\
                                   FILE_EXECUTE             |\
                                   SYNCHRONIZE)



#define PROCESS_TERMINATE                  (0x0001) 
#define PROCESS_CREATE_THREAD              (0x0002) 
#define PROCESS_SET_SESSIONID              (0x0004) 
#define PROCESS_VM_OPERATION               (0x0008) 
#define PROCESS_VM_READ                    (0x0010) 
#define PROCESS_VM_WRITE                   (0x0020) 
#define PROCESS_DUP_HANDLE                 (0x0040) 
#define PROCESS_CREATE_PROCESS             (0x0080) 
#define PROCESS_SET_QUOTA                  (0x0100) 
#define PROCESS_SET_INFORMATION            (0x0200) 
#define PROCESS_QUERY_INFORMATION          (0x0400) 
#define PROCESS_SUSPEND_RESUME             (0x0800) 
#define PROCESS_QUERY_LIMITED_INFORMATION  (0x1000) 
#define PROCESS_SET_LIMITED_INFORMATION    (0x2000)
#define PROCESS_ALL_ACCESS        (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \
                                   0xFFFF)



#define THREAD_TERMINATE                 (0x0001) 
#define THREAD_SUSPEND_RESUME            (0x0002) 
#define THREAD_GET_CONTEXT               (0x0008) 
#define THREAD_SET_CONTEXT               (0x0010) 
#define THREAD_QUERY_INFORMATION         (0x0040) 
#define THREAD_SET_INFORMATION           (0x0020) 
#define THREAD_SET_THREAD_TOKEN          (0x0080)
#define THREAD_IMPERSONATE               (0x0100)
#define THREAD_DIRECT_IMPERSONATION      (0x0200)
#define THREAD_SET_LIMITED_INFORMATION   (0x0400)  // winnt
#define THREAD_QUERY_LIMITED_INFORMATION (0x0800)  // winnt
#define THREAD_RESUME                    (0x1000)  // winnt
#if (NTDDI_VERSION >= NTDDI_VISTA)
#define THREAD_ALL_ACCESS         (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \
                                   0xFFFF)



#define JOB_OBJECT_ASSIGN_PROCESS           (0x0001)
#define JOB_OBJECT_SET_ATTRIBUTES           (0x0002)
#define JOB_OBJECT_QUERY                    (0x0004)
#define JOB_OBJECT_TERMINATE                (0x0008)
#define JOB_OBJECT_SET_SECURITY_ATTRIBUTES  (0x0010)
#define JOB_OBJECT_IMPERSONATE              (0x0020)
#define JOB_OBJECT_ALL_ACCESS       (STANDARD_RIGHTS_REQUIRED | SYNCHRONIZE | \
                                        0x3F )


ACCESS_MASK: Specific rights of NT objects

#define FILE_READ_DATA            ( 0x0001 )    // file & pipe #define FILE_LIST_DIRECTORY       ( 0x0001 )    // directory #define FILE...