Exemple #1
0
        public void NicIsSelected(NetworkInterface nic)
        {
            pcs = new PcList();
            pcs.SetCallBackOnNewPC(CallbackOnNewPC);
            pcs.SetCallBackOnPCRemove(callbackOnPCRemove);
            nicNet = nic;
            /* modopt(System.Runtime.CompilerServices.IsConst) */
            CArp cArp = new CArp(nic, this.pcs);

            this.cArp = cArp;
            cArp.startArpListener();
            this.cArp.findMacRouter();
            PC pC = new PC()
            {
                ip        = new IPAddress(this.cArp.localIP),
                mac       = new PhysicalAddress(this.cArp.localMAC),
                CapDown   = 0,
                CapUp     = 0,
                isLocalPc = true,
                name      = "",
                nbPacketReceivedSinceLastReset = 0,
                nbPacketSentSinceLastReset     = 0,
                redirect            = false,
                timeSinceLastRarp   = DateTime.Now,
                totalPacketReceived = 0,
                totalPacketSent     = 0,
                isGateway           = false
            };

            this.pcs.addPcToList(pC);
            this.timer2.Interval = 5000;
            this.timer2.Start();
            this.treeGridView1.Nodes[0].Expand();
            cArp.startArpDiscovery();
        }
Exemple #2
0
        public CArp(NetworkInterface networkInterface, PcList pclist)
        {
            pcList = pclist;
            this.networkInterface = networkInterface;
            int num = 0;

            if (0 < networkInterface.GetIPProperties().UnicastAddresses.Count)
            {
                do
                {
                    if (!Convert.ToString(this.networkInterface.GetIPProperties().UnicastAddresses[num].Address.AddressFamily).EndsWith("V6"))
                    {
                        CArp addressBytes = this;
                        addressBytes.localIP = addressBytes.networkInterface.GetIPProperties().UnicastAddresses[num].Address.GetAddressBytes();
                        CArp cArp = this;
                        cArp.netmask = cArp.networkInterface.GetIPProperties().UnicastAddresses[num].IPv4Mask.GetAddressBytes();
                    }
                    num++;
                }while (num < this.networkInterface.GetIPProperties().UnicastAddresses.Count);
            }
            CArp addressBytes1 = this;

            addressBytes1.localMAC = addressBytes1.networkInterface.GetPhysicalAddress().GetAddressBytes();
            if (this.networkInterface.GetIPProperties().GatewayAddresses.Count > 0)
            {
                CArp cArp1 = this;
                cArp1.routerIP = cArp1.networkInterface.GetIPProperties().GatewayAddresses[0].Address.GetAddressBytes();
            }
            byte[] numArray = new byte[6];
            broadcastMac = numArray;
            int num1 = 0;

            do
            {
                numArray[num1] = 255;
                num1++;
            }while (num1 < 6);
            pcaparp      = new CPcapNet();
            pcapredirect = new CPcapNet();
            //arpListenerThreadTerminated = new EventWaitHandle(false, EventResetMode.AutoReset);
            //redirectorThreadTerminated = new EventWaitHandle(false, EventResetMode.AutoReset);
            //discovererThreadTerminated = new EventWaitHandle(false, EventResetMode.AutoReset);
            isListeningArp = false;
            isDiscovering  = false;
            isRedirecting  = false;
        }
Exemple #3
0
        public void Spoof(IPAddress ip1, IPAddress ip2)
        {
            PC pCFromIP = pcList.getPCFromIP(ip1.GetAddressBytes());
            PC pC       = pcList.getPCFromIP(ip2.GetAddressBytes());

            if (pCFromIP != null && pC != null)
            {
                byte[] numArray = localMAC;
                pcaparp.pcapnet_sendpacket(buildArpPacket(pCFromIP.mac.GetAddressBytes(), numArray, 2, numArray, pC.ip.GetAddressBytes(), pCFromIP.mac.GetAddressBytes(), pCFromIP.ip.GetAddressBytes()));
                byte[] numArray1 = localMAC;
                pcaparp.pcapnet_sendpacket(buildArpPacket(pC.mac.GetAddressBytes(), numArray1, 2, numArray1, pCFromIP.ip.GetAddressBytes(), pC.mac.GetAddressBytes(), pC.ip.GetAddressBytes()));
                CArp cArp = this;
                pcaparp.pcapnet_sendpacket(cArp.buildArpPacket(cArp.localMAC, pC.mac.GetAddressBytes(), 2, pC.mac.GetAddressBytes(), pC.ip.GetAddressBytes(), localMAC, localIP));
                byte[] numArray2 = localMAC;
                pcaparp.pcapnet_sendpacket(buildArpPacket(numArray2, numArray2, 2, pCFromIP.mac.GetAddressBytes(), pCFromIP.ip.GetAddressBytes(), localMAC, localIP));
            }
        }
Exemple #4
0
        public void completeUnspoof()
        {
            PC router = pcList.getRouter();

            if (router != null)
            {
                int num = 0;
                if (0 < pcList.pclist.Count)
                {
                    do
                    {
                        CArp cArp = this;
                        cArp.UnSpoof(((PC)cArp.pcList.pclist[num]).ip, router.ip);
                        num++;
                    }while (num < pcList.pclist.Count);
                }
            }
        }
Exemple #5
0
        public void findMacRouter()
        {
            CArp cArp = this;

            cArp.FindMac((new IPAddress(cArp.routerIP)).ToString());
        }