private void ScanBanners(BasicScanItemDisplay basicScanItemDisplay) { var selectedTargetDisplay = this.SelectedTargetDisplay; if (basicScanItemDisplay.IsBannerScanRunning) { return; } basicScanItemDisplay.IsBannerScanRunning = true; this.RunTask(uiThread => { var ipAddress = basicScanItemDisplay.IPAddress; foreach (var portDescription in basicScanItemDisplay.PortDescriptions) { portDescription.Banner = this.nmapBannerGrabber.Grab(IPAddress.Parse(ipAddress), portDescription.Port, portDescription.Protocol); if (portDescription.Banner != string.Empty) { uiThread.Execute(() => { selectedTargetDisplay.AddBanner(ipAddress, portDescription); }); } } uiThread.Execute(() => { basicScanItemDisplay.IsBannerScanRunning = false; }); }); }
private void ScanPorts(BasicScanItemDisplay basicScanItemDisplay) { if (basicScanItemDisplay.IPAddress == "Unknown") { return; } if (basicScanItemDisplay.IsPortScanRunning) { return; } basicScanItemDisplay.IsPortScanRunning = true; this.RunTask(uiThread => { var tcpPorts = this.portScanner.SynScan(basicScanItemDisplay.IPAddress); var udpPorts = this.portScanner.UdpScan(basicScanItemDisplay.IPAddress); uiThread.Execute(() => { basicScanItemDisplay.PortDescriptions.Clear(); foreach (var port in tcpPorts) { if (this.portDescriptionService.PortDescriptions.ContainsKey(port)) { var portDescription = this.portDescriptionService.PortDescriptions[port].Clone(); portDescription.Protocol = Layer4ProtocolType.TCP; basicScanItemDisplay.PortDescriptions.Add(portDescription); } else { var portDescription = new PortDescription(port, "Unknown") { Protocol = Layer4ProtocolType.TCP }; basicScanItemDisplay.PortDescriptions.Add(portDescription); } } foreach (var port in udpPorts) { if (this.portDescriptionService.PortDescriptions.ContainsKey(port)) { var portDescription = this.portDescriptionService.PortDescriptions[port].Clone(); portDescription.Protocol = Layer4ProtocolType.UDP; basicScanItemDisplay.PortDescriptions.Add(portDescription); } else { var portDescription = new PortDescription(port, "Unknown") { Protocol = Layer4ProtocolType.UDP }; basicScanItemDisplay.PortDescriptions.Add(portDescription); } } CommandManager.InvalidateRequerySuggested(); basicScanItemDisplay.IsPortScanRunning = false; }); }); }
private void DeleteBasicScanItem(BasicScanItemDisplay basicScanItemDisplay) { this.SelectedTargetDisplay.BasicScanItemDisplays.Remove(basicScanItemDisplay); }