/// <summary> /// /// </summary> public void startFingerprint(FingerprintConfig pConfig) { cInfrastructure.startFingerprint(pConfig); }
/// <summary> /// /// </summary> public void startFingerprint(FingerprintConfig pConfig) { if (!File.Exists(cNmapBin)) throw new Exception("Nmap binary not found"); if (pConfig == null) throw new Exception("Something is wrong with the configuration parameters"); if (String.IsNullOrEmpty(pConfig.IP)) throw new Exception("Something is wrong with the target IP address"); cProcStopRequested = false; cFingerprintConf = pConfig; cXMLMACAddress = pConfig.MAC; cXMLOutputFile = Path.GetTempFileName(); cNmapProc = new Process(); cNmapProc.StartInfo.FileName = cNmapBin; cNmapProc.StartInfo.Arguments = String.Format(cNmapParameters, pConfig.IP, cXMLOutputFile); cNmapProc.StartInfo.UseShellExecute = false; cNmapProc.StartInfo.CreateNoWindow = pConfig.IsDebuggingOn ? false : true; cNmapProc.StartInfo.WindowStyle = pConfig.IsDebuggingOn ? ProcessWindowStyle.Normal : ProcessWindowStyle.Hidden; cNmapProc.EnableRaisingEvents = true; // Configure the process exited event cNmapProc.Exited += onNmapScanExited; cNmapProc.Disposed += onNmapScanExited; cNmapProc.Start(); }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void BGW_Scanner_DoWork(object sender, DoWorkEventArgs e) { PGB_Systems.Minimum = 0; PGB_Systems.Maximum = mTargetSystems.Count; mFingerprintStatus.CurrentIndexNo = 0; mFingerprintStatus.MaxIndex = mTargetSystems.Count; foreach (ScanSystem lTmp in mTargetSystems) { mFingerprintingFinished.Reset(); SystemFingerprint.TaskFacadeFingerprint lTaskFacadeFingerprint = SystemFingerprint.TaskFacadeFingerprint.getInstance(); mFingerprintStatus.CurrentIndexNo++; mFingerprintStatus.CurrentSystemIP = lTmp.TargetIP; mFingerprintStatus.CurrentSystemMAC = lTmp.TargetMAC; incrementProgress(mFingerprintStatus); if (!BGW_Scanner.CancellationPending) { FingerprintConfig lConfig = new FingerprintConfig() { IP = lTmp.TargetIP, MAC = lTmp.TargetMAC, OnScanStopped = FingerprintStoppedCallback, IsDebuggingOn = Debugging.IsDebuggingOn() }; try { lTaskFacadeFingerprint.startFingerprint(lConfig); } catch (Exception lEx) { try { stopFingerprintingProcess(); } catch (Exception) { } LogConsole.Main.LogConsole.LogInstance.LogMessage(String.Format("ScanMultipleSystems: {0}", lEx.Message)); MessageBox.Show(String.Format("The following error occurred: {0}", lEx.Message)); break; } try { mFingerprintingFinished.WaitOne(30 * 1000); } catch (Exception lEx) { MessageBox.Show(String.Format("scan ({0}) aborted: {1}", lTmp.TargetIP, lEx.Message)); } } // if (BGW_Sca... } // foreach (Scan... mFingerprintStatus.CurrentSystemIP = String.Empty; mFingerprintStatus.CurrentSystemMAC = String.Empty; incrementProgress(mFingerprintStatus); if (!BGW_Scanner.CancellationPending) stopFingerprintingProcess(); }