/// <summary> /// 添加应用层协议 /// </summary> /// <param name="payloadData">载荷数据</param> /// <param name="SourcePort">源端口</param> /// <param name="DestinationPort">目的端口</param> private void AppNode(byte[] payloadData, ushort SourcePort, ushort DestinationPort) { if (payloadData.Length == 0) { return; } AppsrcPort = SourcePort; AppdstPort = DestinationPort; //HTTP 80 if (isAnalysProtocol(80)) { HttpPacket http = new HttpPacket(payloadData); Http(http); } //smtp 25 else if (isAnalysProtocol(25)) { SmtpPacket smtp = new SmtpPacket(payloadData); SMTP(smtp); } //pop3 110 else if (isAnalysProtocol(110)) { Pop3Packet pop3 = new Pop3Packet(payloadData); POP3(pop3); } //DNS 53 else if (isAnalysProtocol(53)) { DnsPacket dns = new DnsPacket(payloadData); DNS(dns); } //ftp 21 else if (isAnalysProtocol(21)) { FtpPacket ftp = new FtpPacket(payloadData); FTP(ftp); } //DHCP 67 68 else if (isAnalysProtocol(67) || isAnalysProtocol(68)) { DhcpPackets dp = new DhcpPackets(payloadData); DHCP(dp); } else if (isAnalysProtocol(520)) { RipPacket rp = new RipPacket(payloadData); RIP(rp); } //ssdp 1900 else if (isAnalysProtocol(1900)) { SSDPPacket ssdp = new SSDPPacket(payloadData); SSDP(ssdp); } }
private void POP3(Pop3Packet pop3Packet) { if (pop3Packet == null) { return; } if (POP3Node == null) { POP3Node = CreatNode("POP3", 7); } POP3Node.Nodes.Clear(); List <CommandTypeHead> pop3List = pop3Packet.CreatHeadList(); if (pop3List.Count == 0) { return; } //显示数据 setAppTreeNode(pop3List, POP3Node); //加入选定模式 }
private int ExtractEmail(NetworkTcpSession tcpSession, TcpPacket tcpPacket, Pop3Packet pop3Packet) { return(this.ExtractEmail(tcpSession, tcpPacket, pop3Packet.PacketStartIndex + pop3Packet.ParsedBytesCount, pop3Packet.PacketEndIndex - pop3Packet.PacketStartIndex + 1 - pop3Packet.ParsedBytesCount)); }