예제 #1
0
        private void provider_DictionaryAdded(HandleItem item)
        {
            HighlightedListViewItem litem = new HighlightedListViewItem(_highlightingContext,
                                                                        item.RunId > 0 && _runCount > 0);

            litem.Name = item.Handle.Handle.ToString();
            litem.Text = item.ObjectInfo.TypeName;
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.ObjectInfo.BestName));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, "0x" + item.Handle.Handle.ToString("x")));
            litem.Tag = item;

            litem.NormalColor = this.GetHandleColor(item);

            lock (_needsAdd)
                _needsAdd.Add(litem);
        }
예제 #2
0
        private void provider_DictionaryAdded(MemoryItem item)
        {
            this.BeginInvoke(new MethodInvoker(() =>
            {
                HighlightedListViewItem litem = new HighlightedListViewItem(_highlightingContext,
                                                                            item.RunId > 0 && _runCount > 0);

                litem.Name = item.Address.ToString();

                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, ""));
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, ""));
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, ""));

                this.FillMemoryListViewItem(litem, item);

                _needsAdd.Add(litem);
            }));
        }
예제 #3
0
        private void provider_DictionaryAdded(ServiceItem item)
        {
            HighlightedListViewItem litem = new HighlightedListViewItem(_highlightingContext,
                                                                        item.RunId > 0 && _runCount > 0);

            litem.Name = item.Status.ServiceName;
            litem.Text = item.Status.ServiceName;
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem,
                                                                item.Status.DisplayName));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem,
                                                                item.Status.ServiceStatusProcess.ServiceType.ToString()));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem,
                                                                item.Status.ServiceStatusProcess.CurrentState.ToString()));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem,
                                                                item.Config.StartType.ToString()));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem,
                                                                item.Status.ServiceStatusProcess.ProcessID == 0 ? "" :
                                                                item.Status.ServiceStatusProcess.ProcessID.ToString()));

            if ((item.Status.ServiceStatusProcess.ServiceType & ServiceType.InteractiveProcess) != 0)
            {
                litem.ImageKey = "Interactive";
            }
            else if (item.Status.ServiceStatusProcess.ServiceType == ServiceType.Win32OwnProcess ||
                     item.Status.ServiceStatusProcess.ServiceType == ServiceType.Win32ShareProcess)
            {
                litem.ImageKey = "Win32";
            }
            else if (item.Status.ServiceStatusProcess.ServiceType == ServiceType.FileSystemDriver)
            {
                litem.ImageKey = "FS";
            }
            else
            {
                litem.ImageKey = "Driver";
            }

            lock (_needsAdd)
                _needsAdd.Add(litem);
        }
예제 #4
0
        private void provider_DictionaryAdded(ModuleItem item)
        {
            HighlightedListViewItem litem = new HighlightedListViewItem(_highlightingContext,
                                                                        item.RunId > 0 && _runCount > 0);

            litem.Name = item.BaseAddress.ToString();
            litem.Text = item.Name;
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, Utils.FormatAddress(item.BaseAddress)));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, Utils.FormatSize(item.Size)));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.FileDescription));
            litem.ToolTipText = item.FileName;
            litem.Tag         = item;
            litem.NormalColor = this.GetModuleColor(item);

            if (item.FileName.Equals(_mainModule, StringComparison.InvariantCultureIgnoreCase))
            {
                litem.Font = new System.Drawing.Font(litem.Font, System.Drawing.FontStyle.Bold);
            }

            lock (_needsAdd)
                _needsAdd.Add(litem);
        }
예제 #5
0
        private void provider_DictionaryAdded(NetworkItem item)
        {
            HighlightedListViewItem litem = new HighlightedListViewItem(_highlightingContext, (int)item.Tag > 0 && _runCount > 0);

            litem.Name = item.Id;
            litem.Tag  = item;

            Icon icon = null;

            if (Program.ProcessProvider.Dictionary.ContainsKey(item.Connection.Pid))
            {
                lock (listNetwork)
                {
                    if (imageList.Images.ContainsKey(item.Connection.Pid.ToString()))
                    {
                        imageList.Images.RemoveByKey(item.Connection.Pid.ToString());
                    }

                    icon = Program.ProcessProvider.Dictionary[item.Connection.Pid].Icon;
                }
            }

            if (icon != null)
            {
                lock (listNetwork)
                    imageList.Images.Add(item.Connection.Pid.ToString(), icon);

                litem.ImageKey = item.Connection.Pid.ToString();
            }
            else
            {
                litem.ImageKey = "generic_process";
            }

            if (item.Connection.Pid == 0)
            {
                litem.Text = "Waiting Connections";
            }
            else if (Program.ProcessProvider.Dictionary.ContainsKey(item.Connection.Pid))
            {
                litem.Text = Program.ProcessProvider.Dictionary[item.Connection.Pid].Name +
                             " (" + item.Connection.Pid.ToString() + ")";
            }
            else
            {
                litem.Text = "Unknown Process (" + item.Connection.Pid.ToString() + ")";
            }

            if (item.Connection.Local != null && !item.Connection.Local.IsEmpty())
            {
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.Connection.Local.ToString()));
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.Connection.Local.Port.ToString()));
            }
            else
            {
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, ""));
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, ""));
            }

            if (item.Connection.Remote != null && !item.Connection.Remote.IsEmpty())
            {
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.Connection.Remote.ToString()));
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.Connection.Remote.Port.ToString()));
            }
            else
            {
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, ""));
                litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, ""));
            }

            this.FillNetworkItemAddresses(litem, item);

            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.Connection.Protocol.ToString().ToUpper()));
            litem.SubItems.Add(new ListViewItem.ListViewSubItem(litem, item.Connection.State != 0 ? item.Connection.State.ToString() : ""));

            lock (_needsAdd)
                _needsAdd.Add(litem);
            _needsImageKeyReset = true;
        }