private static void BlockPacket(ILiveDevice device, WinpkFilterHeader header, Packet packet) { var ip = packet.Extract <IPv4Packet>(); var tcp = packet.Extract <TcpPacket>(); if (WebHelper.Address.Equals(ip?.DestinationAddress) && tcp?.DestinationPort == 80) { // No packet shall pass return; } AllowPacket(device, header, packet); }
private static void DirtyPacket(ILiveDevice device, WinpkFilterHeader header, Packet packet) { var ip = packet.Extract <IPv4Packet>(); var tcp = packet.Extract <TcpPacket>(); if (WebHelper.Address.Equals(ip?.DestinationAddress) && tcp?.DestinationPort == 80) { // Let's mess with the request a bit var data = Encoding.UTF8.GetString(tcp.PayloadData); data = data.Replace("HTTP", "HTML"); tcp.PayloadData = Encoding.UTF8.GetBytes(data); ip.UpdateIPChecksum(); tcp.UpdateTcpChecksum(); } AllowPacket(device, header, packet); }
private static void AllowPacket(ILiveDevice device, WinpkFilterHeader header, Packet packet) { device.SendPacket(packet.Bytes, header); }