public MainForm() { InitializeComponent(); Logging.FormOutputControl = tbOutput; SQLHelper.LogExceptionAction = Logging.LogExceptionMessage; ProcessingToggle = new Toggle(ActivationBehavior, DeactivationBehavior); panelYara.Enabled = checkBoxYaraRules.Checked; string connectionString = Settings.Database_ConnectionString; if (string.IsNullOrWhiteSpace(connectionString) || connectionString == "SetMe") { Logging.ReportOutput("ERROR: Connection string not set! Please set the SQL connection string in .config file. Browse button disabled."); btnBrowse.Enabled = false; } else { FilePropertiesAccessLayer.SetConnectionString(connectionString); } if (!string.IsNullOrWhiteSpace(Settings.GUI_DefaultFolder)) { tbPath.Text = Settings.GUI_DefaultFolder; } if (!string.IsNullOrWhiteSpace(Settings.GUI_SearchPattern)) { tbSearchPatterns.Text = Settings.GUI_SearchPattern; } }
private static void Main(string[] args) { string connectionString = Settings.Database_ConnectionString; if (string.IsNullOrWhiteSpace(connectionString) || connectionString == "SetMe") { ReportOutput("ERROR: Connection string not set! Please set the SQL connection string in .config file."); ReportOutput("Aborting..."); return; } else { FilePropertiesAccessLayer.SetConnectionString(connectionString); } if (args.Length == 0) { DisplayUsageSyntax(); return; } // Will hold flag & parameter to flag, such as: "-p", "C:\Windows\" List <Tuple <string, string> > flags = GetFlags(args); if (!flags.Any()) { return; } string searchPath = ""; string searchMask = "*.*"; bool calcEntropy = false; bool onlineValidation = false; string yaraRulesFile = ""; foreach (Tuple <string, string> flagTuple in flags) { string flag = flagTuple.Item1; string parameter = flagTuple.Item2; switch (flag) { case "e": calcEntropy = true; break; case "v": onlineValidation = true; break; case "p": searchPath = parameter; break; case "m": searchMask = parameter; break; case "y": yaraRulesFile = parameter; break; } } ReportOutput($"Search [P]ath: \"{searchPath}\""); ReportOutput($"Search [M]ask: {searchMask}"); ReportOutput($"Calulate [E]ntropy: {calcEntropy}"); ReportOutput($"Online [V]alidation: {onlineValidation}"); ReportOutput($"[Y]ara Rules File: \"{yaraRulesFile}\""); ReportOutput(""); FileEnumeratorParameters parameters = new FileEnumeratorParameters(CancellationToken.None, Settings.FileEnumeration_DisableWorkerThread, searchPath, searchMask, calcEntropy, onlineValidation, yaraRulesFile, ReportOutput, LogOutput, ReportResults, ReportException); ReportOutput("Beginning enumeration..."); FileEnumerator.LaunchFileEnumerator(parameters); }