示例#1
0
 public NTLMv2ClientChallenge(byte[] buffer, int offset)
 {
     CurrentVersion          = ByteReader.ReadByte(buffer, offset + 0);
     MaximumSupportedVersion = ByteReader.ReadByte(buffer, offset + 1);
     Reserved1       = LittleEndianConverter.ToUInt16(buffer, offset + 2);
     Reserved2       = LittleEndianConverter.ToUInt32(buffer, offset + 4);
     TimeStamp       = FileTimeHelper.ReadFileTime(buffer, offset + 8);
     ClientChallenge = ByteReader.ReadBytes(buffer, offset + 16, 8);
     Reserved3       = LittleEndianConverter.ToUInt32(buffer, offset + 24);
     AVPairs         = AVPairUtils.ReadAVPairSequence(buffer, offset + 28);
 }
示例#2
0
 public ChallengeMessage(byte[] buffer)
 {
     Signature       = ByteReader.ReadAnsiString(buffer, 0, 8);
     MessageType     = (MessageTypeName)LittleEndianConverter.ToUInt32(buffer, 8);
     TargetName      = AuthenticationMessageUtils.ReadUnicodeStringBufferPointer(buffer, 12);
     NegotiateFlags  = (NegotiateFlags)LittleEndianConverter.ToUInt32(buffer, 20);
     ServerChallenge = ByteReader.ReadBytes(buffer, 24, 8);
     // Reserved
     byte[] targetInfoBytes = AuthenticationMessageUtils.ReadBufferPointer(buffer, 40);
     if (targetInfoBytes.Length > 0)
     {
         TargetInfo = AVPairUtils.ReadAVPairSequence(targetInfoBytes, 0);
     }
     if ((NegotiateFlags & NegotiateFlags.Version) > 0)
     {
         Version = new NTLMVersion(buffer, 48);
     }
 }