public static void ScunByTimer(Object source, System.Timers.ElapsedEventArgs e) { List <string> temp = DataBaseMethods.DataBaseGetAllNotesWhere("Schedule", $"TIME='{DateTime.Now.ToString("HH:mm")}'"); if (temp.Count == 0) { return; } List <string> filesToScan = new List <string>(); List <string> signatures = AntivirusLibrary.DataBaseMethods.DataBaseGetOneField("Signatures", 1); foreach (string dir in temp) { filesToScan.AddRange(AntivirusLibrary.DirectoryAndFileMethods.GetAllFiles(dir.Split('?')[1])); } filesToScan = AntivirusLibrary.DirectoryAndFileMethods.FilesForScan(filesToScan); MailSlotServerMethods.FilesForScanCount = filesToScan.Count; foreach (string file in filesToScan) { var c = AntivirusLibrary.ScanMethods.GetScanBuffer(file); AntivirusLibrary.ScanMethods.ScanToQueueSchedule(c, signatures, file); } while (MailSlotServerMethods.FilesForScanCount != 0) { } MailSlotServerMethods.ScanStatus = true; }
public static void StartMonitoringServer() { List <string> paths = DataBaseMethods.DataBaseGetOneField("Monitoring", 1); foreach (string file in paths) { Console.WriteLine(file); listMonitoring.Add(new MonitoringMethods(file)); } }
private static void StopMonitoring() { List <string> paths = DataBaseMethods.DataBaseGetOneField("Monitoring", 1); WriteMail("Monitoring stoped"); foreach (string file in paths) { var monitoringObject = GetMonitoringObject(file); if (monitoringObject != null) { monitoringObject.StopMonitoring(); } } }
public static string Scan(byte[] byteArray, List <string> signatureList, string filePath, string dirPath) //уточнить { for (int i = 0; i < byteArray.Length; i++) { //string temp = ByteToString(byteArray, i, 4); foreach (string str in signatureList) { if (byteArray.Length - i - 1 >= str.Length / 2) { string temp = ByteToString(byteArray, i, str.Length / 2); if (temp.Equals(str)) { string type = AntivirusLibrary.DataBaseMethods.DataBaseGetVirusType(str); string date = DateTime.Now.ToString("MM/dd/yyyy"); string time = DateTime.Now.ToString("H:mm"); AntivirusLibrary.DataBaseMethods.AddNote("SCANREPORT", "PATH,VIRUSTYPE,DATE,TIME", $"'{filePath}','{type}','{date}','{time}'"); string change = DataBaseMethods.DataBaseGetOneFieldIn("Monitoring", 4, $@"PATH='{dirPath}'"); Console.WriteLine(filePath); if (change.Equals("QUARANTINE")) { AntivirusLibrary.DataBaseMethods.AddNote("MONITORINGREPORT", "PATH,DATE,TIME,CHANGE,VIRUSTYPE", $"'{filePath}','{date}','{time}','в карантине','{type}'"); FileManipulation.FileManipulationQuaratineFull(filePath); Console.WriteLine("SendToQuarantine"); } else if (change.Equals("DELETE")) { AntivirusLibrary.DataBaseMethods.AddNote("MONITORINGREPORT", "PATH,DATE,TIME,CHANGE,VIRUSTYPE", $"'{filePath}','{date}','{time}','удален','{type}'"); FileManipulation.FileManipulationDeleteFull(filePath); Console.WriteLine("Deleted"); } Console.WriteLine("virus"); return("virus"); } //выход это вирус уиии } } } Console.WriteLine("clear"); return("clear"); //это не вирус =( }
public static void ServerReadThread() { while (true) { string mail = ReadMail(); if (mail != "") { Quest quest = new Quest(int.Parse(mail.Split('|')[0])); for (int i = 1; i <= int.Parse(mail.Split('|')[1].Split('?')[0]); i++) { quest.setPaths(mail.Split('|')[1].Split('?')[i]); Console.WriteLine(mail.Split('|')[1]); } for (int i = 1; i <= int.Parse(mail.Split('|')[2].Split('?')[0]); i++) { quest.setOptions(mail.Split('|')[2].Split('?')[i]); } quest.Show(); switch (quest.command) { case 0: DataBaseMethods.DataBaseDeleteAllNotes("Scan"); StartScanDir(quest); break; case 1: DeleteFiles(quest); break; case 2: QuarantineFiles(quest); break; case 3: IgnorFiles(quest); break; case 4: StartMonitoring(quest); break; case 5: StopMonitoring(); break; case 6: var status = GetScanStatus(); WriteMail("Status_" + status); break; case 7: GetScanProgress(); break; case 8: ScanMethods.StopScan(); break; case 9: Recover(quest); break; default: break; } } } }