1
#include "smbtypes.h"
2
3
typedef struct
4
{
5
uint16  len;
6
uint16  maxlen;
7
uint32  offset;
8
}tSmbStrHeader;
9
10
typedef struct
11
{
12
char          ident[8];
13
uint32        msgType;
14
uint32        flags;
15
tSmbStrHeader    user;
16
tSmbStrHeader    domain;
17
uint8         buffer[1024];
18
uint32        bufIndex;
19
}tSmbNtlmAuthRequest;
20
21
typedef struct
22
{
23
char          ident[8];
24
uint32        msgType;
25
tSmbStrHeader    uDomain;
26
uint32        flags;
27
uint8         challengeData[8];
28
uint8         reserved[8];
29
tSmbStrHeader    emptyString;
30
uint8         buffer[1024];
31
uint32        bufIndex;
32
}tSmbNtlmAuthChallenge;
33
34
35
typedef struct
36
{
37
char          ident[8];
38
uint32        msgType;
39
tSmbStrHeader    lmResponse;
40
tSmbStrHeader    ntResponse;
41
tSmbStrHeader    uDomain;
42
tSmbStrHeader    uUser;
43
tSmbStrHeader    uWks;
44
tSmbStrHeader    sessionKey;
45
uint32        flags;
46
uint8         buffer[1024];
47
uint32        bufIndex;
48
}tSmbNtlmAuthResponse;
49
50
#define SmbLength(ptr) (((ptr)->buffer - (uint8*)(ptr)) + (ptr)->bufIndex)