Example #1
0
        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;
        }
Example #2
0
        public static void StartMonitoringServer()
        {
            List <string> paths = DataBaseMethods.DataBaseGetOneField("Monitoring", 1);

            foreach (string file in paths)
            {
                Console.WriteLine(file);
                listMonitoring.Add(new MonitoringMethods(file));
            }
        }
Example #3
0
        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();
                }
            }
        }
Example #4
0
        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"); //это не вирус =(
        }
Example #5
0
        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;
                    }
                }
            }
        }