private void device_PcapOnPacketArrival(object sender, Packet packet) { if (!(packet is TCPPacket)) { return; } TCPPacket tcpPacket = (TCPPacket)packet; // Creates a key for the dictionary TCPConnection c = new TCPConnection(tcpPacket); // Todo: gescheiter Filter if (!(c.DestinationPort == port || c.SourcePort == port)) { return; } // create a new entry if the key does not exists if (!sharpPcapDict.ContainsKey(c) && !this.gotLock) { TcpRecon.TcpRecon tcpRecon = new TcpRecon.TcpRecon(this.serverStr, this.clientStr); sharpPcapDict.Add(c, tcpRecon); this.gotLock = true; } // Use the TcpRecon class to reconstruct the session if (this.sharpPcapDict.ContainsKey(c)) { sharpPcapDict[c].ReassemblePacket(tcpPacket); } L2Packet l2packet = null; while (this.clientStr.MorePackets()) { l2packet = this.gameSniffer.handlePacket(this.clientStr.ReadPacket(), false); if (l2packet != null) { this.packetContainer.AddPacket(l2packet); l2packet.PacketNo = this.count++; } } while (this.serverStr.MorePackets()) { l2packet = this.gameSniffer.handlePacket(this.serverStr.ReadPacket(), true); if (l2packet != null) { this.packetContainer.AddPacket(l2packet); l2packet.PacketNo = this.count++; } } }
// The callback function for the SharpPcap library private static void device_PcapOnPacketArrival(object sender, Packet packet) { if (!(packet is TCPPacket)) { return; } TCPPacket tcpPacket = (TCPPacket)packet; // Creates a key for the dictionary Connection c = new Connection(tcpPacket); // create a new entry if the key does not exists if (!sharpPcapDict.ContainsKey(c)) { string fileName = c.getFileName(path); TcpRecon tcpRecon = new TcpRecon(fileName); sharpPcapDict.Add(c, tcpRecon); } // Use the TcpRecon class to reconstruct the session sharpPcapDict[c].ReassemblePacket(tcpPacket); }
private void device_PcapOnPacketArrival(object sender, Packet packet) { if (!(packet is TCPPacket)) { return; } TCPPacket tcpPacket = (TCPPacket)packet; // Creates a key for the dictionary TCPConnection c = new TCPConnection(tcpPacket); // create a new entry if the key does not exists if (!sharpPcapDict.ContainsKey(c) && !this.gotLock) { TcpRecon.TcpRecon tcpRecon = new TcpRecon.TcpRecon(this.serverStr, this.clientStr); sharpPcapDict.Add(c, tcpRecon); this.gotLock = true; this.connection = tcpRecon; } // Use the TcpRecon class to reconstruct the session if (this.sharpPcapDict.ContainsKey(c)) { // Events if (tcpPacket.Syn && tcpPacket.Ack) { this.OnSynRecived(this); } else if (tcpPacket.Fin && tcpPacket.Ack) { this.OnFinRecived(this); } sharpPcapDict[c].ReassemblePacket(tcpPacket); } this.processPackets(); }
// The callback function for the SharpPcap library private static void device_PcapOnPacketArrival(object sender, Packet packet) { if (!(packet is TCPPacket)) return; TCPPacket tcpPacket = (TCPPacket)packet; // Creates a key for the dictionary Connection c = new Connection(tcpPacket); // create a new entry if the key does not exists if (!sharpPcapDict.ContainsKey(c)) { string fileName = c.getFileName(path); TcpRecon tcpRecon = new TcpRecon(fileName); sharpPcapDict.Add(c, tcpRecon); } // Use the TcpRecon class to reconstruct the session sharpPcapDict[c].ReassemblePacket(tcpPacket); }
private void device_PcapOnPacketArrival(object sender, Packet packet) { if (!(packet is TCPPacket)) return; TCPPacket tcpPacket = (TCPPacket)packet; // Creates a key for the dictionary TCPConnection c = new TCPConnection(tcpPacket); // Todo: gescheiter Filter if (!(c.DestinationPort == port || c.SourcePort == port)) return; // create a new entry if the key does not exists if (!sharpPcapDict.ContainsKey(c) && !this.gotLock) { TcpRecon.TcpRecon tcpRecon = new TcpRecon.TcpRecon(this.serverStr, this.clientStr); sharpPcapDict.Add(c, tcpRecon); this.gotLock = true; } // Use the TcpRecon class to reconstruct the session if (this.sharpPcapDict.ContainsKey(c)) { sharpPcapDict[c].ReassemblePacket(tcpPacket); } L2Packet l2packet = null; while (this.clientStr.MorePackets()) { l2packet = this.gameSniffer.handlePacket(this.clientStr.ReadPacket(), false); if (l2packet != null) { this.packetContainer.AddPacket(l2packet); l2packet.PacketNo = this.count++; } } while (this.serverStr.MorePackets()) { l2packet = this.gameSniffer.handlePacket(this.serverStr.ReadPacket(), true); if (l2packet != null) { this.packetContainer.AddPacket(l2packet); l2packet.PacketNo = this.count++; } } }
private void device_PcapOnPacketArrival(object sender, Packet packet) { if (!(packet is TCPPacket)) return; TCPPacket tcpPacket = (TCPPacket)packet; // Creates a key for the dictionary TCPConnection c = new TCPConnection(tcpPacket); // create a new entry if the key does not exists if (!sharpPcapDict.ContainsKey(c) && !this.gotLock) { TcpRecon.TcpRecon tcpRecon = new TcpRecon.TcpRecon(this.serverStr, this.clientStr); sharpPcapDict.Add(c, tcpRecon); this.gotLock = true; this.connection = tcpRecon; } // Use the TcpRecon class to reconstruct the session if (this.sharpPcapDict.ContainsKey(c)) { // Events if (tcpPacket.Syn && tcpPacket.Ack) this.OnSynRecived(this); else if (tcpPacket.Fin && tcpPacket.Ack) this.OnFinRecived(this); sharpPcapDict[c].ReassemblePacket(tcpPacket); } this.processPackets(); }