static int RunRescanSMBVerb(RescanSMBOptions options) { Dictionary <string, SMBHost> hosts; SetCommonOptions(options); SetScanCommonOptions(options); SetMTOptions(options); SetDirScanMTOptions(options); Config.ScanForNewShares = options.ScanForNewShares; Config.ScanForNewSharesRecusiveLevel = options.RecursiveLevel; Config.ScanForNewSharesTryResolveHostName = options.ResolveHostname; if (File.Exists(options.InputFile)) { hosts = SMBSharesMapperSerializer.DeserializeHosts(options.InputFile); if (hosts == null) { return(-1); } if (options.AppendHosts != null) { SharesScanner.AppendHosts(hosts, options.AppendHosts.Split(','), Config.ScanForNewSharesTryResolveHostName); } if (options.AppendHostsFile != null) { SharesScanner.AppendHosts(hosts, options.AppendHostsFile, Config.ScanForNewSharesTryResolveHostName); } if (options.MaxThreads > 1) { SharesScanner.MTReScanHosts(hosts); } else { SharesScanner.ReScanHosts(hosts); } SMBSharesMapperSerializer.SerializeHosts(hosts, options.OutData); if (options.OutReport.Length > 0) { if (File.Exists(options.SIDFileIn)) { ReportGenerator.XLSXReport.LoadSIDResolutionFile(options.SIDFileIn); } ReportGenerator.XLSXReport.GenerateSMBHostsReport(hosts, options.OutReport); ReportGenerator.XLSXReport.SIDCahe.Clear(); } } return(0); }
static int RunscanSMBVerb(SMBOptions options) { Dictionary <string, SMBHost> hosts = new Dictionary <string, SMBHost>(); SetCommonOptions(options); SetScanCommonOptions(options); SetMTOptions(options); SetDirScanMTOptions(options); if (options.TargetType.ToLower() == "hosts") { if (options.MaxThreads > 1) { hosts = SharesScanner.MTScanHosts(SharesMapperUtils.AddrParser.ParseTargets(options.Target).ToArray()); } else { hosts = SharesScanner.ScanHosts(SharesMapperUtils.AddrParser.ParseTargets(options.Target).ToArray()); } } else if (options.TargetType.ToLower() == "file") { if (options.MaxThreads > 1) { hosts = SharesScanner.MTScanHosts(options.Target); } else { hosts = SharesScanner.ScanHosts(options.Target); } } else { throw new ArgumentException("Unknown targetType value."); } SMBSharesMapperSerializer.SerializeHosts(hosts, options.OutData); if (options.OutReport.Length > 0) { if (File.Exists(options.SIDFileIn)) { ReportGenerator.XLSXReport.LoadSIDResolutionFile(options.SIDFileIn); } ReportGenerator.XLSXReport.GenerateSMBHostsReport(hosts, options.OutReport); ReportGenerator.XLSXReport.SIDCahe.Clear(); } return(0); }