⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 rpc_samr.h

📁 MC Linux/Unix 终端下文件管理器
💻 H
📖 第 1 页 / 共 2 页
字号:
/* SAMR_Q_ENUM_DOM_ALIASES - SAM rids and names */typedef struct q_samr_enum_dom_aliases_info{	POLICY_HND pol;          /* policy handle */	/* this is possibly an enumeration context handle... */	uint32 unknown_0;         /* 0x0000 0000 */	uint32 max_size;              /* 0x0000 ffff */} SAMR_Q_ENUM_DOM_ALIASES;/* SAMR_R_ENUM_DOM_ALIASES - SAM rids and names */typedef struct r_samr_enum_dom_aliases_info{	uint32 num_entries;	uint32 ptr_entries;	uint32 num_entries2;	uint32 ptr_entries2;	uint32 num_entries3;	SAM_ENTRY sam[MAX_SAM_ENTRIES];	UNISTR2 uni_grp_name[MAX_SAM_ENTRIES];	uint32 num_entries4;	uint32 status;} SAMR_R_ENUM_DOM_ALIASES;/* SAMR_Q_QUERY_DISPINFO - SAM rids, names and descriptions */typedef struct q_samr_query_disp_info{	POLICY_HND pol;        /* policy handle */	uint16 switch_level;    /* 0x0001 and 0x0002 seen */	uint16 unknown_0;       /* 0x0000 and 0x2000 seen */	uint32 start_idx;       /* presumably the start enumeration index */	uint32 unknown_1;       /* 0x0000 07d0, 0x0000 0400 and 0x0000 0200 seen */	uint32 max_size;        /* 0x0000 7fff, 0x0000 7ffe and 0x0000 3fff seen*/} SAMR_Q_QUERY_DISPINFO;typedef struct samr_entry_info1{	uint32 user_idx;	uint32 rid_user;	uint16 acb_info;	uint16 pad;	UNIHDR hdr_acct_name;	UNIHDR hdr_user_name;	UNIHDR hdr_user_desc;} SAM_ENTRY1;typedef struct samr_str_entry_info1{	UNISTR2 uni_acct_name;	UNISTR2 uni_full_name;	UNISTR2 uni_acct_desc;} SAM_STR1;typedef struct sam_entry_info_1{	uint32 num_entries;	uint32 ptr_entries;	uint32 num_entries2;	SAM_ENTRY1 sam[MAX_SAM_ENTRIES];	SAM_STR1   str[MAX_SAM_ENTRIES];} SAM_INFO_1;typedef struct samr_entry_info2{	uint32 user_idx;	uint32 rid_user;	uint16 acb_info;	uint16 pad;	UNIHDR hdr_srv_name;	UNIHDR hdr_srv_desc;} SAM_ENTRY2;typedef struct samr_str_entry_info2{	UNISTR2 uni_srv_name;	UNISTR2 uni_srv_desc;} SAM_STR2;typedef struct sam_entry_info_2{	uint32 num_entries;	uint32 ptr_entries;	uint32 num_entries2;	SAM_ENTRY2 sam[MAX_SAM_ENTRIES];	SAM_STR2   str[MAX_SAM_ENTRIES];} SAM_INFO_2;typedef struct sam_info_ctr_info{	union	{		SAM_INFO_1 *info1; /* server info */		SAM_INFO_2 *info2; /* user info */		void       *info; /* allows assignment without typecasting, */	} sam;} SAM_INFO_CTR;/* SAMR_R_QUERY_DISPINFO - SAM rids, names and descriptions */typedef struct r_samr_query_dispinfo_info{	uint32 unknown_0;        /* container length? 0x0000 0492 or 0x0000 00be */	uint32 unknown_1;        /* container length? 0x0000 049a or 0x0000 00be */	uint16 switch_level;     /* 0x0001 or 0x0002 */	/*uint8 pad[2] */	SAM_INFO_CTR *ctr;	uint32 status;} SAMR_R_QUERY_DISPINFO;/* SAMR_Q_QUERY_ALIASINFO - SAM Alias Info */typedef struct q_samr_enum_alias_info{	POLICY_HND pol;        /* policy handle */	uint16 switch_level;    /* 0x0003 seen */} SAMR_Q_QUERY_ALIASINFO;typedef struct samr_alias_info3{	UNIHDR hdr_acct_desc;	UNISTR2 uni_acct_desc;} ALIAS_INFO3;/* SAMR_R_QUERY_ALIASINFO - SAM rids, names and descriptions */typedef struct r_samr_query_aliasinfo_info{	uint32 ptr;        	uint16 switch_value;     /* 0x0003 */	/* uint8[2] padding */	union 	{		ALIAS_INFO3 info3;	} alias;	uint32 status;} SAMR_R_QUERY_ALIASINFO;/* SAMR_Q_QUERY_USERGROUPS - */typedef struct q_samr_query_usergroup_info{	POLICY_HND pol;          /* policy handle associated with unknown id */} SAMR_Q_QUERY_USERGROUPS;/* SAMR_R_QUERY_USERGROUPS - probably a get sam info */typedef struct r_samr_query_usergroup_info{	uint32 ptr_0;            /* pointer */	uint32 num_entries;      /* number of RID groups */	uint32 ptr_1;            /* pointer */	uint32 num_entries2;     /* number of RID groups */	DOM_GID *gid; /* group info */	uint32 status;         /* return status */} SAMR_R_QUERY_USERGROUPS;/* SAMR_Q_QUERY_USERINFO - probably a get sam info */typedef struct q_samr_query_user_info{	POLICY_HND pol;          /* policy handle associated with unknown id */	uint16 switch_value;         /* 0x0015, 0x0011 or 0x0010 - 16 bit unknown */} SAMR_Q_QUERY_USERINFO;/* SAMR_R_QUERY_USERINFO - probably a get sam info */typedef struct r_samr_query_user_info{	uint32 ptr;            /* pointer */	uint16 switch_value;      /* 0x0015, 0x0011 or 0x0010 - same as in query */	/* uint8[2] padding. */	union	{		SAM_USER_INFO_10 *id10; /* auth-level 0x10 */		SAM_USER_INFO_11 *id11; /* auth-level 0x11 */		SAM_USER_INFO_21 *id21; /* auth-level 21 */		void* id; /* to make typecasting easy */	} info;	uint32 status;         /* return status */} SAMR_R_QUERY_USERINFO;/****************************************************************************SAMR_Q_LOOKUP_IDS - do a conversion from name to RID.the policy handle allocated by an "samr open secret" call is associatedwith a SID.  this policy handle is what is queried here, *not* the SIDitself.  the response to the lookup rids is relative to this SID.*****************************************************************************//* SAMR_Q_LOOKUP_IDS */typedef struct q_samr_lookup_ids_info{    POLICY_HND pol;       /* policy handle */	uint32 num_sids1;      /* number of rids being looked up */	uint32 ptr;            /* buffer pointer */	uint32 num_sids2;      /* number of rids being looked up */	uint32   ptr_sid[MAX_LOOKUP_SIDS]; /* pointers to sids to be looked up */	DOM_SID2 sid    [MAX_LOOKUP_SIDS]; /* sids to be looked up. */} SAMR_Q_LOOKUP_IDS;/* SAMR_R_LOOKUP_IDS */typedef struct r_samr_lookup_ids_info{	uint32 num_entries;	uint32 ptr; /* undocumented buffer pointer */	uint32 num_entries2; 	uint32 rid[MAX_LOOKUP_SIDS]; /* domain RIDs being looked up */	uint32 status; /* return code */} SAMR_R_LOOKUP_IDS;/****************************************************************************SAMR_Q_LOOKUP_NAMES - do a conversion from Names to RIDs+types.*****************************************************************************//* SAMR_Q_LOOKUP_NAMES */typedef struct q_samr_lookup_names_info{	POLICY_HND pol;       /* policy handle */	uint32 num_names1;      /* number of names being looked up */	uint32 flags;           /* 0x0000 03e8 - unknown */	uint32 ptr;            /* 0x0000 0000 - 32 bit unknown */	uint32 num_names2;      /* number of names being looked up */	UNIHDR  hdr_name[MAX_LOOKUP_SIDS]; /* unicode account name header */	UNISTR2 uni_name[MAX_LOOKUP_SIDS]; /* unicode account name string */} SAMR_Q_LOOKUP_NAMES;/* SAMR_R_LOOKUP_NAMES */typedef struct r_samr_lookup_names_info{	uint32 num_rids1;      /* number of aliases being looked up */	uint32 ptr_rids;       /* pointer to aliases */	uint32 num_rids2;      /* number of aliases being looked up */	uint32 rid[MAX_LOOKUP_SIDS]; /* rids */	uint32 num_types1;      /* number of users in aliases being looked up */	uint32 ptr_types;       /* pointer to users in aliases */	uint32 num_types2;      /* number of users in aliases being looked up */	uint32 type[MAX_LOOKUP_SIDS]; /* SID_ENUM type */	uint32 status; /* return code */} SAMR_R_LOOKUP_NAMES;/****************************************************************************SAMR_Q_UNKNOWN_12 - do a conversion from RID groups to something.called to resolve domain RID groups.*****************************************************************************//* SAMR_Q_UNKNOWN_12 */typedef struct q_samr_unknown_12_info{    POLICY_HND pol;       /* policy handle */	uint32 num_gids1;      /* number of rids being looked up */	uint32 rid;            /* 0x0000 03e8 - RID of the server doing the query? */	uint32 ptr;            /* 0x0000 0000 - 32 bit unknown */	uint32 num_gids2;      /* number of rids being looked up */	uint32 gid[MAX_LOOKUP_SIDS]; /* domain RIDs being looked up */} SAMR_Q_UNKNOWN_12;/****************************************************************************SAMR_R_UNKNOWN_12 - do a conversion from group RID to names*****************************************************************************//* SAMR_R_UNKNOWN_12 */typedef struct r_samr_unknown_12_info{    POLICY_HND pol;       /* policy handle */	uint32 num_aliases1;      /* number of aliases being looked up */	uint32 ptr_aliases;       /* pointer to aliases */	uint32 num_aliases2;      /* number of aliases being looked up */	UNIHDR  hdr_als_name[MAX_LOOKUP_SIDS]; /* unicode account name header */	UNISTR2 uni_als_name[MAX_LOOKUP_SIDS]; /* unicode account name string */	uint32 num_als_usrs1;      /* number of users in aliases being looked up */	uint32 ptr_als_usrs;       /* pointer to users in aliases */	uint32 num_als_usrs2;      /* number of users in aliases being looked up */	uint32 num_als_usrs[MAX_LOOKUP_SIDS]; /* number of users per group */	uint32 status;} SAMR_R_UNKNOWN_12;/* SAMR_Q_OPEN_USER - probably an open */typedef struct q_samr_open_user_info{    POLICY_HND domain_pol;       /* policy handle */	uint32 unknown_0;     /* 32 bit unknown - 0x02011b */	uint32 user_rid;      /* user RID */} SAMR_Q_OPEN_USER;/* SAMR_R_OPEN_USER - probably an open */typedef struct r_samr_open_user_info{    POLICY_HND user_pol;       /* policy handle associated with unknown id */	uint32 status;         /* return status */} SAMR_R_OPEN_USER;/* SAMR_Q_UNKNOWN_13 - probably an open alias in domain */typedef struct q_samr_unknown_13_info{    POLICY_HND alias_pol;        /* policy handle */	uint16 unknown_1;            /* 16 bit unknown - 0x0200 */	uint16 unknown_2;            /* 16 bit unknown - 0x0000 */} SAMR_Q_UNKNOWN_13;/* SAMR_Q_UNKNOWN_21 - probably an open group in domain */typedef struct q_samr_unknown_21_info{    POLICY_HND group_pol;        /* policy handle */	uint16 unknown_1;            /* 16 bit unknown - 0x0477 */	uint16 unknown_2;            /* 16 bit unknown - 0x0000 */} SAMR_Q_UNKNOWN_21;/* SAMR_Q_UNKNOWN_32 - probably a "create SAM entry" */typedef struct q_samr_unknown_32_info{    POLICY_HND pol;             /* policy handle */	UNIHDR  hdr_mach_acct;       /* unicode machine account name header */	UNISTR2 uni_mach_acct;       /* unicode machine account name */	uint32 acct_ctrl;            /* 32 bit ACB_XXXX */	uint16 unknown_1;            /* 16 bit unknown - 0x00B0 */	uint16 unknown_2;            /* 16 bit unknown - 0xe005 */} SAMR_Q_UNKNOWN_32;/* SAMR_R_UNKNOWN_32 - probably a "create SAM entry" */typedef struct r_samr_unknown_32_info{    POLICY_HND pol;       /* policy handle */	/* rid4.unknown - fail: 0030 success: 0x03ff */	DOM_RID4 rid4;         /* rid and attributes */	uint32 status;         /* return status - fail: 0xC000 0099: user exists */} SAMR_R_UNKNOWN_32;/* SAMR_Q_OPEN_ALIAS - probably an open */typedef struct q_samr_open_alias_info{	uint32 unknown_0;         /* 0x0000 0008 */	uint32 rid_alias;        /* rid */} SAMR_Q_OPEN_ALIAS;/* SAMR_R_OPEN_ALIAS - probably an open */typedef struct r_samr_open_alias_info{	POLICY_HND pol;       /* policy handle */	uint32 status;         /* return status */} SAMR_R_OPEN_ALIAS;/* SAMR_Q_CONNECT_ANON - probably an open */typedef struct q_samr_connect_anon_info{	uint32 ptr;                  /* ptr? */	uint16 unknown_0;            /* 0x005c */	uint16 unknown_1;            /* 0x0001 */	uint32 unknown_2;            /* 0x0000 0020 */} SAMR_Q_CONNECT_ANON;/* SAMR_R_CONNECT_ANON - probably an open */typedef struct r_samr_connect_anon_info{	POLICY_HND connect_pol;       /* policy handle */	uint32 status;         /* return status */} SAMR_R_CONNECT_ANON;/* SAMR_Q_CONNECT - probably an open */typedef struct q_samr_connect_info{	uint32 ptr_srv_name;         /* pointer (to server name?) */	UNISTR2 uni_srv_name;        /* unicode server name starting with '\\' */	uint32 unknown_0;            /* 32 bit unknown */} SAMR_Q_CONNECT;/* SAMR_R_CONNECT - probably an open */typedef struct r_samr_connect_info{    POLICY_HND connect_pol;       /* policy handle */	uint32 status;         /* return status */} SAMR_R_CONNECT;/* SAMR_Q_UNKNOWN_38 */typedef struct q_samr_unknown_38{	uint32 ptr; 	UNIHDR  hdr_srv_name;	UNISTR2 uni_srv_name;} SAMR_Q_UNKNOWN_38;/* SAMR_R_UNKNOWN_38 */typedef struct r_samr_unknown_38{	uint16 unk_0;	uint16 unk_1;	uint16 unk_2;	uint16 unk_3;	uint32 status;         /* return status */} SAMR_R_UNKNOWN_38;/* SAMR_ENC_PASSWD */typedef struct enc_passwd_info{	uint32 ptr;	uint8 pass[516];} SAMR_ENC_PASSWD;/* SAMR_ENC_HASH */typedef struct enc_hash_info{	uint32 ptr;	uint8 hash[16];} SAMR_ENC_HASH;/* SAMR_Q_CHGPASSWD_USER */typedef struct q_samr_chgpasswd_user_info{	uint32 ptr_0;	UNIHDR hdr_dest_host; /* server name unicode header */	UNISTR2 uni_dest_host; /* server name unicode string */	UNIHDR hdr_user_name;    /* username unicode string header */	UNISTR2 uni_user_name;    /* username unicode string */	SAMR_ENC_PASSWD nt_newpass;	SAMR_ENC_HASH nt_oldhash;	uint32 unknown; /* 0x0000 0001 */	SAMR_ENC_PASSWD lm_newpass;	SAMR_ENC_HASH lm_oldhash;} SAMR_Q_CHGPASSWD_USER;/* SAMR_R_CHGPASSWD_USER */typedef struct r_samr_chgpasswd_user_info{	uint32 status; /* 0 == OK, C000006A (NT_STATUS_WRONG_PASSWORD) */} SAMR_R_CHGPASSWD_USER;#endif /* _RPC_SAMR_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -