コード例 #1
0
ファイル: LoadingForm.cs プロジェクト: yang123vc/WiFiSpy
 public void SetCapFile(CapFile capFile)
 {
     capFile.onReadAccessPoint += capFile_onReadAccessPoint;
     capFile.onReadBeacon      += capFile_onReadBeacon;
     capFile.onReadDataFrame   += capFile_onReadDataFrame;
     capFile.onReadStation     += capFile_onReadStation;
 }
コード例 #2
0
        private void ReadCapFiles()
        {
            LoadingForm LoadForm = new LoadingForm();

            LoadForm.Show();

            //CapFiles.Clear();
            List <CapFile> CapFiles = new List <CapFile>();

            foreach (string capFilePath in Directory.GetFiles(Environment.CurrentDirectory + "\\Data\\Captures", "*.cap"))
            {
                CapFile capFile = new CapFile();

                LoadForm.SetCapFile(capFile);
                LoadForm.SetFileName(new FileInfo(capFilePath).Name);

                capFile.ReadCap(capFilePath);

                CapFiles.Add(capFile);
            }

            this.captureInfo = new CaptureInfo();

            LoadForm.SetCaptureInfo(this.captureInfo);

            captureInfo.AddCapturefiles(CapFiles.ToArray());
            CapFiles.Clear();

            LoadForm.Close();
        }
コード例 #3
0
 private void ReadCapFiles()
 {
     CapFiles.Clear();
     foreach (string capFilePath in Directory.GetFiles(Environment.CurrentDirectory + "\\Data\\Captures", "*.cap"))
     {
         CapFile capFile = new CapFile(capFilePath);
         CapFiles.Add(capFile);
     }
 }
コード例 #4
0
ファイル: DataFrame.cs プロジェクト: dklemx/WiFiSpy
        public DataFrame(PacketDotNet.Ieee80211.QosDataFrame DataFrame, DateTime TimeStamp)
        {
            this.Frame     = DataFrame;
            this.TimeStamp = TimeStamp;

            this.MacSourceAddressLong = CapFile.MacToLong(SourceMacAddress);
            this.MacTargetAddressLong = CapFile.MacToLong(TargetMacAddress);

            //a hacky "parser" to get to the actual payload to get what we need
            int ReadOffset = 0;

            ReadOffset += 26; //IEEE 802.11 header
            ReadOffset += 8;  //Logical-Link Control header

            byte[] PacketData = DataFrame.Bytes;

            if (!(ReadOffset + 20 /*IPv4*/ + 5 > PacketData.Length)) //5byte Packet size as reserved... who wants to read a ~10byte packet anyway
            {
                this.isIPv4 = PacketData[ReadOffset] == 0x45;
                this.isTCP  = PacketData[ReadOffset + 9] == 0x06;
                this.isUDP  = PacketData[ReadOffset + 9] == 0x11;

                if (isIPv4 && (isTCP || isUDP))
                {
                    SourceIp = PacketData[ReadOffset + 12] + "." + PacketData[ReadOffset + 13] + "." + PacketData[ReadOffset + 14] + "." + PacketData[ReadOffset + 15];
                    DestIp   = PacketData[ReadOffset + 16] + "." + PacketData[ReadOffset + 17] + "." + PacketData[ReadOffset + 18] + "." + PacketData[ReadOffset + 19];

                    ReadOffset += 20; //IPv4 header

                    if (isTCP)
                    {
                        PortSource = PacketData[ReadOffset] << 8 | PacketData[ReadOffset + 1];
                        PortDest   = PacketData[ReadOffset + 2] << 8 | PacketData[ReadOffset + 3];

                        ReadOffset += 32; //TCP header
                    }

                    if (isUDP)
                    {
                        PortSource = PacketData[ReadOffset] << 8 | PacketData[ReadOffset + 1];
                        PortDest   = PacketData[ReadOffset + 2] << 8 | PacketData[ReadOffset + 3];

                        ReadOffset += 8; //UDP header
                    }

                    this.PayloadLen    = PacketData.Length - ReadOffset;
                    this.PayloadOffset = ReadOffset;
                }
            }

            if (String.IsNullOrEmpty(SourceIp) || String.IsNullOrEmpty(DestIp))
            {
                SourceIp = "";
                DestIp   = "";
            }
        }