00001 typedef unsigned short uint16; 00002 typedef unsigned uint32; 00003 typedef unsigned char uint8; 00004 00005 typedef struct 00006 { 00007 uint16 len; 00008 uint16 maxlen; 00009 uint32 offset; 00010 }tSmbStrHeader; 00011 00012 typedef struct 00013 { 00014 char ident[8]; 00015 uint32 msgType; 00016 uint32 flags; 00017 tSmbStrHeader user; 00018 tSmbStrHeader domain; 00019 uint8 buffer[1024]; 00020 uint32 bufIndex; 00021 }tSmbNtlmAuthRequest; 00022 00023 typedef struct 00024 { 00025 char ident[8]; 00026 uint32 msgType; 00027 tSmbStrHeader uDomain; 00028 uint32 flags; 00029 uint8 challengeData[8]; 00030 uint8 reserved[8]; 00031 tSmbStrHeader emptyString; 00032 uint8 buffer[1024]; 00033 uint32 bufIndex; 00034 }tSmbNtlmAuthChallenge; 00035 00036 00037 typedef struct 00038 { 00039 char ident[8]; 00040 uint32 msgType; 00041 tSmbStrHeader lmResponse; 00042 tSmbStrHeader ntResponse; 00043 tSmbStrHeader uDomain; 00044 tSmbStrHeader uUser; 00045 tSmbStrHeader uWks; 00046 tSmbStrHeader sessionKey; 00047 uint32 flags; 00048 uint8 buffer[1024]; 00049 uint32 bufIndex; 00050 }tSmbNtlmAuthResponse; 00051 00052 #define SmbLength(ptr) (((ptr)->buffer - (uint8*)(ptr)) + (ptr)->bufIndex)