mirror of
https://github.com/samba-team/samba.git
synced 2025-02-16 09:57:47 +03:00
added structures readable and writeable by smbparse.c routines into and out
of SMB or Mailslot packets.
This commit is contained in:
parent
297d5ef46c
commit
4b3f9b281b
@ -252,6 +252,188 @@ typedef char fstring[128];
|
||||
typedef fstring string;
|
||||
|
||||
|
||||
/* 32 bit time (sec) since 01jan1970 - cifs6.txt, section 3.5, page 30 */
|
||||
typedef uint32 UTIME;
|
||||
|
||||
/* 64 bit time (100usec) since ????? - cifs6.txt, section 3.5, page 30 */
|
||||
typedef struct nttime
|
||||
{
|
||||
uint32 low;
|
||||
uint32 high;
|
||||
|
||||
} NTTIME;
|
||||
|
||||
|
||||
#define MAXSUBAUTHS 10 /* max sub authorities in a SID */
|
||||
|
||||
/* DOM_SID - security id */
|
||||
typedef struct sid_info
|
||||
{
|
||||
uint8 sid_no; /* SID revision number */
|
||||
uint8 num_auths; /* number of sub-authorities */
|
||||
uint8 id_auth[6]; /* Identifier Authority */
|
||||
uint16 sub_auths[MAXSUBAUTHS]; /* pointer to sub-authorities. */
|
||||
|
||||
} DOM_SID;
|
||||
|
||||
/* UNIHDR - unicode string header */
|
||||
typedef struct unihdr_info
|
||||
{
|
||||
uint16 uni_max_len;
|
||||
uint16 uni_str_len;
|
||||
uint32 undoc; /* usually has a value of 4 */
|
||||
|
||||
} UNIHDR;
|
||||
|
||||
/* UNIHDR2 - unicode string header and undocumented buffer */
|
||||
typedef struct unihdr2_info
|
||||
{
|
||||
UNIHDR unihdr;
|
||||
uint32 undoc_buffer; /* undocumented 32 bit buffer pointer */
|
||||
|
||||
} UNIHDR2;
|
||||
|
||||
/* clueless as to what maximum length should be */
|
||||
#define MAX_UNISTRLEN 1024
|
||||
|
||||
/* UNISTR - unicode string size and buffer */
|
||||
typedef struct unistr_info
|
||||
{
|
||||
uint16 buffer[MAX_UNISTRLEN]; /* unicode characters. ***MUST*** be null-terminated */
|
||||
|
||||
} UNISTR;
|
||||
|
||||
/* UNISTR2 - unicode string size and buffer */
|
||||
typedef struct unistr2_info
|
||||
{
|
||||
uint32 uni_max_len;
|
||||
uint32 undoc;
|
||||
uint32 uni_str_len;
|
||||
uint16 buffer[MAX_UNISTRLEN]; /* unicode characters. **NOT** necessarily null-terminated */
|
||||
|
||||
} UNISTR2;
|
||||
|
||||
/* DOM_SID2 - domain SID structure - SIDs stored in unicode */
|
||||
typedef struct domsid2_info
|
||||
{
|
||||
uint32 type; /* value is 5 */
|
||||
uint32 undoc; /* value is 0 */
|
||||
UNIHDR2 hdr; /* XXXX conflict between hdr and str for length */
|
||||
UNISTR str; /* XXXX conflict between hdr and str for length */
|
||||
|
||||
} DOM_SID2;
|
||||
|
||||
/* DOM_RID2 - domain RID structure */
|
||||
typedef struct domrid2_info
|
||||
{
|
||||
uint32 type; /* value is 5 */
|
||||
uint32 undoc; /* value is 5 */
|
||||
uint32 rid;
|
||||
uint32 rid_idx; /* don't know what this is */
|
||||
|
||||
} DOM_RID2;
|
||||
|
||||
/* DOM_LOG_INFO - login info */
|
||||
typedef struct log_info
|
||||
{
|
||||
uint32 undoc_buffer; /* undocumented 32 bit buffer pointer */
|
||||
UNISTR2 uni_logon_srv; /* logon server name */
|
||||
UNISTR2 uni_acct_name; /* account name */
|
||||
uint16 sec_chan; /* secure channel type */
|
||||
UNISTR2 uni_comp_name; /* client machine name */
|
||||
|
||||
} DOM_LOG_INFO;
|
||||
|
||||
/* DOM_CREDs - client or server credentials */
|
||||
typedef struct cred_info
|
||||
{
|
||||
uint8 data[8]; /* credentials */
|
||||
UTIME timestamp; /* credential time-stamp */
|
||||
|
||||
} DOM_CRED;
|
||||
|
||||
/* DOM_CLNT_INFO - client info */
|
||||
typedef struct clnt_info
|
||||
{
|
||||
DOM_LOG_INFO login;
|
||||
DOM_CRED cred;
|
||||
|
||||
} DOM_CLNT_INFO;
|
||||
|
||||
/* DOM_LOGON_ID - logon id */
|
||||
typedef struct logon_info
|
||||
{
|
||||
uint32 low;
|
||||
uint32 high;
|
||||
|
||||
} DOM_LOGON_ID;
|
||||
|
||||
/* RC4_OWF */
|
||||
typedef struct rc4_owf_info
|
||||
{
|
||||
uint8 data[16];
|
||||
|
||||
} RC4_OWF;
|
||||
|
||||
|
||||
/* DOM_ID_INFO_1 */
|
||||
typedef struct id_info_1
|
||||
{
|
||||
UNIHDR hdr_domain_name; /* domain name unicode header */
|
||||
uint32 param; /* param control */
|
||||
DOM_LOGON_ID logon_id; /* logon ID */
|
||||
UNIHDR hdr_user_name; /* user name unicode header */
|
||||
UNIHDR hdr_workgroup_name; /* workgroup name unicode header */
|
||||
RC4_OWF rc4_lm_owf; /* rc4 LM OWF Password */
|
||||
RC4_OWF rc4_nt_owf; /* rc4 NT OWF Password */
|
||||
UNISTR2 uni_domain_name; /* domain name unicode string */
|
||||
UNISTR2 uni_user_name; /* user name unicode string */
|
||||
UNISTR2 uni_workgroup_name; /* workgroup name unicode string */
|
||||
|
||||
} DOM_ID_INFO_1;
|
||||
|
||||
/* SAM_INFO - sam logon/off id structure */
|
||||
typedef struct sam_info
|
||||
{
|
||||
DOM_CLNT_INFO client;
|
||||
DOM_CRED rtn_cred; /* return credentials */
|
||||
uint16 logon_level;
|
||||
uint32 auth_level; /* undocumented */
|
||||
|
||||
union
|
||||
{
|
||||
DOM_ID_INFO_1 id1; /* auth-level 1 */
|
||||
|
||||
} auth;
|
||||
|
||||
} DOM_SAM_INFO;
|
||||
|
||||
/* DOM_GID - group id + user attributes */
|
||||
typedef struct gid_info
|
||||
{
|
||||
uint32 gid; /* group id */
|
||||
uint32 attr;
|
||||
|
||||
} DOM_GID;
|
||||
|
||||
/* RPC_HEADER - ms rpc header */
|
||||
typedef struct rpc_hdr_info
|
||||
{
|
||||
uint8 major; /* 5 - RPC major version */
|
||||
uint8 minor; /* 0 - RPC minor version */
|
||||
uint8 pkt_type; /* 2 - RPC response packet */
|
||||
uint8 frag; /* 3 - first frag + last frag */
|
||||
uint32 pack_type; /* 0x0000 0010 - packed data representation */
|
||||
uint16 frag_len; /* fragment length - data size (bytes) inc header and tail. */
|
||||
uint16 auth_len; /* 0 - authentication length */
|
||||
uint32 call_id; /* call identifier. matches 12th uint32 of incoming RPC data. */
|
||||
uint32 alloc_hint; /* allocation hint - data size (bytes) minus header and tail. */
|
||||
uint16 context_id; /* 0 - presentation context identifier */
|
||||
uint8 cancel_count; /* 0 - cancel count */
|
||||
uint8 reserved; /* 0 - reserved */
|
||||
} RPC_HEADER;
|
||||
|
||||
|
||||
struct smb_passwd {
|
||||
int smb_userid;
|
||||
char *smb_name;
|
||||
|
Loading…
x
Reference in New Issue
Block a user