Пример #1
0
        private void LoadSniff(object sender, EventArgs e)
        {
            var fileDialog = new OpenFileDialog {
                Filter = @"PKT files|*.pkt"
            };

            if (fileDialog.ShowDialog() != DialogResult.OK)
            {
                return;
            }

            Processor = new BinaryProcessor();
            Processor.OnPacketParsed += PacketStore.Insert;
            Task.Factory.StartNew(() =>
            {
                var stopwatch = new Stopwatch();
                stopwatch.Start();
                Processor.Process(fileDialog.FileName);
                stopwatch.Stop();
                Invoke((MethodInvoker)(() =>
                {
                    _filterTextBox.AutoCompleteCustomSource.Clear();
                    _filterTextBox.AutoCompleteCustomSource.AddRange(Enum.GetNames(typeof(Opcodes)));

                    _opcodeListView.Enabled = true;
                    _opcodeListView.Objects = PacketStore.GetAvailablePackets();

                    _filterTextBox.Enabled = true;

                    _sniffLoadProgressBar.Visible = false;

                    toolStripStatusLabel1.Text = $"{Processor.Count} packets parsed in {stopwatch.Elapsed}";
                }));
            });
        }
Пример #2
0
        private void OnLoad(object sender, EventArgs e)
        {
            _filterTextBox.AutoCompleteCustomSource = new AutoCompleteStringCollection();

            _opcodeListView.GetColumn(0).AspectGetter = model => model.ToString();
            _opcodeListView.ItemChecked += (o, args) => {
                var selectedPackets = _opcodeListView.CheckedObjects.Cast <string>();
                _detailListView.Objects = PacketStore.GetPackets(selectedPackets);
            };

            _detailListView.GetColumn(0).AspectGetter = model =>
                                                        (model as PacketStore.Record)?.Opcode.ToString();
            _detailListView.GetColumn(1).AspectGetter = model =>
                                                        (model as PacketStore.Record)?.TimeStamp.ToString("dd/MM/yyyy hh:mm:ss.ffffff");

            _detailListView.CellClick += (o, cellClickArgs) => {
                if (cellClickArgs.Model != null)
                {
                    _detailedPacketView.SelectedObject = ((PacketStore.Record)cellClickArgs.Model).Packet;
                }
            };

            var opcodeFilter = new OpcodeFilter(_opcodeListView);

            _filterTextBox.TextChanged += (o, _) => opcodeFilter.FilterValue = _filterTextBox.Text;
        }