private void mFileImportMenu_Click(object pSender, EventArgs pArgs) { if (mImportDialog.ShowDialog(this) != DialogResult.OK) { return; } PcapOfflineDevice device = new PcapOfflineDevice(mImportDialog.FileName); device.Open(); Packet packet = null; SessionForm session = null; while ((packet = device.GetNextPacket()) != null) { TCPPacket tcpPacket = packet as TCPPacket; if (tcpPacket == null) { continue; } if ((tcpPacket.SourcePort < Config.Instance.LowPort || tcpPacket.SourcePort > Config.Instance.HighPort) && (tcpPacket.DestinationPort < Config.Instance.LowPort || tcpPacket.DestinationPort > Config.Instance.HighPort)) { continue; } if (tcpPacket.Syn && !tcpPacket.Ack) { session = NewSession(); session.BufferTCPPacket(tcpPacket); } else if (session.MatchTCPPacket(tcpPacket)) { session.BufferTCPPacket(tcpPacket); } } }
void ParseImportedFile() { while (device.Opened) { RawCapture packet = null; SessionForm session = null; while ((packet = device.GetNextPacket()) != null) { if (!started) { continue; } TcpPacket tcpPacket = TcpPacket.GetEncapsulated(Packet.ParsePacket(packet.LinkLayerType, packet.Data)); if (tcpPacket == null) { continue; } if ((tcpPacket.SourcePort < Config.Instance.LowPort || tcpPacket.SourcePort > Config.Instance.HighPort) && (tcpPacket.DestinationPort < Config.Instance.LowPort || tcpPacket.DestinationPort > Config.Instance.HighPort)) { continue; } this.Invoke((MethodInvoker) delegate { try { if (tcpPacket.Syn && !tcpPacket.Ack) { session = NewSession(); var res = session.BufferTCPPacket(tcpPacket, packet.Timeval.Date); if (res == SessionForm.Results.Continue) { session.Show(mDockPanel, DockState.Document); } } else if (session != null && session.MatchTCPPacket(tcpPacket)) { var res = session.BufferTCPPacket(tcpPacket, packet.Timeval.Date); if (res == SessionForm.Results.CloseMe) { session.Close(); } } } catch (Exception) { session.Close(); session = null; } }); } this.Invoke((MethodInvoker) delegate { mSearchForm.RefreshOpcodes(false); }); } }
void ParseImportedFile() { RawCapture packet = null; SessionForm session = null; this.Invoke((MethodInvoker) delegate { while ((packet = device.GetNextPacket()) != null) { if (!started) { continue; } TcpPacket tcpPacket = (TcpPacket)PacketDotNet.Packet.ParsePacket(packet.LinkLayerType, packet.Data).Extract(typeof(TcpPacket)); if (tcpPacket == null) { continue; } if ((tcpPacket.SourcePort < Config.Instance.LowPort || tcpPacket.SourcePort > Config.Instance.HighPort) && (tcpPacket.DestinationPort < Config.Instance.LowPort || tcpPacket.DestinationPort > Config.Instance.HighPort)) { continue; } try { if (tcpPacket.Syn && !tcpPacket.Ack) { if (session != null) { session.Show(mDockPanel, DockState.Document); } session = NewSession(); var res = session.BufferTCPPacket(tcpPacket, packet.Timeval.Date); if (res == SessionForm.Results.Continue) { // mDockPanel.Contents.Add(session); //session.Show(mDockPanel, DockState.Document); } } else if (session != null && session.MatchTCPPacket(tcpPacket)) { var res = session.BufferTCPPacket(tcpPacket, packet.Timeval.Date); if (res == SessionForm.Results.CloseMe) { session.Close(); } } } catch (Exception ex) { Console.WriteLine("Exception while parsing logfile: {0}", ex); session.Close(); session = null; } } if (session != null) { session.Show(mDockPanel, DockState.Document); } if (session != null) { mSearchForm.RefreshOpcodes(false); } }); }