Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
 private static void AllowPacket(ILiveDevice device, WinpkFilterHeader header, Packet packet)
 {
     device.SendPacket(packet.Bytes, header);
 }