Пример #1
0
        public void PrintOpenPorts()
        {
            shouldPrint = true;
            device.StartCapture();
            var tasks = new List <Task>();

            for (ushort i = 1; i < 10000; i++)
            {
                var ethernetPacket = GenerateEthernetPacket(i, TcpType.Syn);

                var i1   = i;
                var task = Task.Run(async() =>
                {
                    var timeoutMs = 128;

                    for (var j = 0; j < 4; j++)
                    {
                        device.SendPacket(ethernetPacket);
                        if (openPorts.Contains(i1) || filteredPorts.Contains(i1))
                        {
                            return;
                        }
                        await Task.Delay(timeoutMs * j);
                    }
                });

                tasks.Add(task);
            }
            Task.WaitAll(tasks.ToArray());
            device.Close();
        }
Пример #2
0
        static void Main(string[] args)
        {
            var devices = CaptureDeviceList.Instance;

            device = (WinPcapDevice)devices[0];
            device.Open();

            //Generate a random packet
            Packet bytes      = CreateMalwarePacket();
            string byteString = "";

            byte[] bytesP = bytes.Bytes;
            foreach (byte b in bytesP)
            {
                byteString += Convert.ToString(b, 2);
            }

            Thread t = new Thread(new ParameterizedThreadStart(SendPacket));

            t.Start(bytes);

            while (true)
            {
                Thread.Sleep(1000);
            }

            t.Abort();
            Thread.Sleep(1000);
            device.Close();
            Console.WriteLine("-- Device closed.");
            Console.Write("Hit 'Enter' to exit...");
            Console.ReadLine();
        }
Пример #3
0
 public void vDispose()
 {
     if (null != mclsWLANDevice)
     {
         mclsWLANDevice.StopCapture();
         mclsWLANDevice.Close();
     }
 }
Пример #4
0
        private void toolBtn_StopCapture_Click(object sender, EventArgs e)
        {
            if (BackgroundThreadStop == true)
            {
                CaptureDevice.StopCapture();
                BackgroundThreadStop = false;
                backgroundThread.Join();
                CaptureDevice.Close();

                toolBtn_StartCapture.Enabled = true;
                toolBtn_StopCapture.Enabled  = false;
                toolBtn_SetAdapter.Enabled   = true;
            }
            else
            {
                MessageBox.Show("未开始拦截封包无法停止!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
Пример #5
0
 public void Shutdown()
 {
     if (device != null)
     {
         device.StopCapture();
         device.Close();
         device.OnPacketArrival  -= arrivalEventHandler;
         device.OnCaptureStopped -= captureStoppedEventHandler;
         device = null;
     }
 }
Пример #6
0
 public static void Cleanup()
 {
     try
     {
         if (device != null && device.Opened)
         {
             device.Close();
         }
     }
     catch { }
 }
Пример #7
0
        public override void send_file(String devicename, String ipadd, int port)
        {
            _stopwatch.Start();
            scan_transfer_speed(devicename, ipadd);
            scan_signal_quality_and_rssi();

            if (port < 10000)
            {
                send_file_tcp(ipadd, port);
            }
            else
            {
                send_file_udp(ipadd, port);
            }

            _timer_sq_rssi.Stop();
            if (_device.Started)
            {
                _device.Close();
            }
            _stopwatch.Stop();
        }
Пример #8
0
        // stop listening on a device
        public void StopDevice()
        {
            Started = false;

            if (Device == null)
            {
                return;
            }

            Device.StopCaptureTimeout = TimeSpan.FromMilliseconds(200);
            Device.StopCapture();
            Device.Close();
        }
Пример #9
0
 private void stop()
 {
     chooseComboBox.Enabled = true;
     stopButton.Enabled     = false;
     stopToolStrip.Enabled  = false;
     startButton.Enabled    = true;
     startToolStrip.Enabled = true;
     dev.OnPacketArrival   -= packetArrivalHandler;
     try
     {
         if (dev.Started)
         {
             dev.StopCapture();
         }
         if (dev.Opened)
         {
             dev.Close();
         }
     }
     catch (PcapException) {
     }
 }
Пример #10
0
        public void Stop()
        {
            if (devices.Count > 0)
            {
                WinPcapDevice dev = devices[settings.Device];
                dev.StopCapture();
                dev.Close();
            }

            if (writer != null && !writer.IsClosed)
            {
                writer.Close();
            }

            ProgressChanged(1, 1);
        }
        private void monitor_recv_runtime()
        {
            //Open the device for capturing
            int readTimeoutMilliseconds = 1000;

            selectedWinPcapDevice.Open(DeviceMode.Promiscuous, readTimeoutMilliseconds);

            string filter = $"tcp and host {target_ip}";

            selectedWinPcapDevice.Filter = filter;

            // Capture packets using GetNextPacket()
            while (onListen)
            {
                RawCapture rawCapture = selectedWinPcapDevice.GetNextPacket();
                if (rawCapture == null)
                {
                    continue;
                }

                // use PacketDotNet to parse this packet and print out
                // its high level information
                Packet parsedPacket = Packet.ParsePacket(rawCapture.LinkLayerType, rawCapture.Data);
                if (parsedPacket.HasPayloadPacket)
                {
                    TcpPacket tcp = parsedPacket.Extract <TcpPacket>();
                    if (tcp != null)
                    {
                        if (tcp.HasPayloadData && tcp.PayloadData.Length > 0)
                        {
                            bool isROServerInfoPacket = ragnarokPacket.verifyServerInfo(tcp.PayloadData, tcp.PayloadData.Length);
                            if (isROServerInfoPacket)
                            {
                                onListen = false;
                                handleServerInfo(tcp);
                                mainform.Invoke(mainform.notifyMonitorFinish_Var);
                            }
                        }
                    }
                }

                Console.WriteLine(parsedPacket.ToString());
            }

            selectedWinPcapDevice.Close();
        }
Пример #12
0
        private void Form1_FormClosing(object sender, FormClosingEventArgs e)
        {
            try
            {
                // Close the pcap device
                _device.Close();
            }
            catch (Exception exception)
            {
                Logger.Log(exception.Message, Severity.Error);
            }

            Properties.Settings.Default.IgnoredComIds      = packetListView1.Settings.IgnoreComid;
            Properties.Settings.Default.AutoScroll         = packetListView1.Settings.AutoScroll;
            Properties.Settings.Default.IgnoreDuplicatedPD = packetListView1.Settings.IgnoreDuplicatedPD;
            Properties.Settings.Default.IgnoreLoopback     = packetListView1.Settings.IgnoreLoopback;
            Properties.Settings.Default.IgnoreUnknownData  = packetListView1.Settings.IgnoreUnknownData;
            Properties.Settings.Default.Save();
        }
Пример #13
0
        private void getPackets()
        {
            //_device.OnPacketArrival +=
            //    new PacketArrivalEventHandler(device_OnPacketArrival);

            if (openfileFlag == true)
            {
                _device.Open();
                _device_stat.Open();
            }
            else
            {
                if (done == true)
                {
                    try
                    {
                        _device.Close();
                        _device_stat.Close();
                        done = false;
                    }
                    catch (Exception er)
                    {
                        MessageBox.Show(er.Message, "ERROR");
                    }
                }
                // Register our handler function to the 'packet arrival' event
                _device.OnPacketArrival +=
                    new PacketArrivalEventHandler(device_OnPacketArrival);
                _device_stat.OnPcapStatistics += new StatisticsModeEventHandler(device_OnPcapStatistics);
                // Open the device for capturing
                int readTimeoutMilliseconds = 1000;
                //_device_stat.Open();
                //_device_stat.Mode = SharpPcap.WinPcap.CaptureMode.Statistics;
                _device.Open(DeviceMode.Promiscuous, readTimeoutMilliseconds);
            }
            // Start the capturing process
            _device.StartCapture();

            Globals.StartTime = DateTime.Now;
        }