Пример #1
0
        protected override IPduReader CreatePduReader()
        {
            var pduDataStream   = new PduDataStream(this.CurrentL7Conversation, PduDataProviderType.Mixed);
            var pduKaitaiReader = new PduKaitaiReader(pduDataStream);

            return(pduKaitaiReader);
        }
Пример #2
0
        private void Parse(PduKaitaiReader reader)
        {
            var dnsPacket = reader.ReadKaitaiStruct <DnsPacket>();

            this.TransactionId = dnsPacket.TransactionId;
            this.Type          = dnsPacket.Flags.Qr == 0 ? DnsMessageType.Query : DnsMessageType.Answer;
            this.Queries       = dnsPacket.Queries.Select(q => new DnsQuery(q)).ToList();
            this.Answers       = dnsPacket.Answers.Select(CreateDnsAnswerMessage).ToList();
        }
Пример #3
0
        public DnsMessage(PduKaitaiReader reader) : base(reader)
        {
            this.Queries = NoQueries;
            this.Answers = NoAnswers;

            try
            {
                this.Parse(reader);
            }
            catch (KaitaiObjectionConstructionException e)
            {
                this.ParsingError = e;
            }
        }
Пример #4
0
 public TlsMessage(PduKaitaiReader reader) : base(reader)
 {
     try
     {
         this.Parse(reader);
     }
     catch (KaitaiObjectionConstructionException e)
     {
         this.ParsingError = e;
     }
     catch (TlsParsingException e)
     {
         this.ParsingError = e;
     }
 }
Пример #5
0
        public void ReadDns()
        {
            var l7Conversation  = this.ReassembleSingleL7Conversation <UdpConversationTracker>(TestPcapFile.Dns1);
            var stream          = new PduDataStream(l7Conversation, PduDataProviderType.Mixed);
            var pduKaitaiReader = new PduKaitaiReader(stream);

            DnsPacket p;

            Assert.False(pduKaitaiReader.EndOfStream);
            p = pduKaitaiReader.ReadKaitaiStruct <DnsPacket>();
            Assert.Equal(0x09be, p.TransactionId);
            Assert.Single(p.Queries);
            Assert.True(pduKaitaiReader.NewMessage());
            p = pduKaitaiReader.ReadKaitaiStruct <DnsPacket>();
            Assert.Equal(0x09be, p.TransactionId);
            Assert.Single(p.Answers);
            Assert.False(pduKaitaiReader.NewMessage());
            Assert.True(pduKaitaiReader.EndOfStream);
        }
Пример #6
0
        private void Parse(PduKaitaiReader reader)
        {
            var tlsPacket = reader.ReadKaitaiStruct <TlsPacket>();

            this.Records = tlsPacket.Records.Select(this.ParseKaitaiTlsRecord).ToArray();
        }