Example #1
0
        public void YearMonthDayConverterTest()
        {
            FileReport fileReport = new FileReport
            {
                ScanDate = new DateTime(2017, 08, 10),
                Scans    = new Dictionary <string, ScanEngine>()
            };

            ScanEngine scan1 = new ScanEngine {
                Detected = true, Result = "Malware.Undefined!8.C (cloud:nWdia2XyY0T)", Version = "25.0.0.1", Update = new DateTime(2017, 07, 26)
            };
            ScanEngine scan2 = new ScanEngine {
                Detected = false, Result = null, Version = "5.5.1.3", Update = new DateTime(2017, 07, 25)
            };
            ScanEngine scan3 = new ScanEngine {
                Detected = false, Result = null, Version = "1.0.1.223", Update = new DateTime(2017, 07, 18)
            };

            fileReport.Scans.Add("Rising", scan1);
            fileReport.Scans.Add("Yandex", scan2);
            fileReport.Scans.Add("SentinelOne", scan3);

            string fileReportJson = JsonConvert.SerializeObject(fileReport.Scans);

            Assert.Contains("\"Update\":\"20170726\"", fileReportJson);
            Assert.Contains("\"Update\":\"20170725\"", fileReportJson);
            Assert.Contains("\"Update\":\"20170718\"", fileReportJson);
        }
        public void ScanEngineConstructorDoesNotThrowWhenValidArgumentsAreProvided()
        {
            var logger = new MockLogger();
            var db     = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings);

            var engine = new ScanEngine(db, logger, 0, SharedMockedCoreSettings);

            Assert.IsNotNull(engine);
        }
 private static ScanResult ConvertScanEngineToScanResult(ScanEngine s)
 {
     return(new ScanResult
     {
         AntiVirus = s.Name,
         Definition = s.Result,
         IsVirus = s.Detected,
         Update = s.Version
     });
 }
        public void ScanEngineCanStartAndStop()
        {
            var logger = new MockLogger();
            var db     = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings);

            var engine = new ScanEngine(db, logger, 0, SharedMockedCoreSettings);

            engine.BeginStart();
            engine.BeginStop();
        }
Example #5
0
        private void Patterncfg_Load(object sender, EventArgs e)
        {
            se = new Scanner.ScanEngine();
            if (se.LoadPatterns() == 0)
            {
                MessageBox.Show("No patterns found", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            foreach (Pattern p in se.Patterns)
            {
                chklbPatterns.Items.Add(p, p.enabled);
            }
        }
Example #6
0
    // Use this for initialization
    async void Start()
    {
        OutputTextMesh      = OutputText.GetComponent <TextMesh>();
        OutputTextMesh.text = string.Empty;

#if UNITY_WSA && !UNITY_EDITOR // RUNNING ON WINDOWS
        CameraScanEngine = new ScanEngine();
        await CameraScanEngine.Inititalize(this);

        CameraScanEngine.StartPullCameraFrames();
#else                          // RUNNING IN UNITY
        ModifyOutputText("Sorry ;-( The app is not supported in the Unity player.");
#endif
    }
Example #7
0
        private async void Start_scaning(ScanEngine scn_engine, Scaning scn_window)
        {
            await Task.Run(() =>
            {
                scn_engine.Start_scaning(sgnt);
                if (flag)
                {
                    return;
                }
            });

            scn_window.timer1.Enabled     = false;
            scn_window.progressBar1.Value = 100;
        }
Example #8
0
 private void StartScaningButton_Click(object sender, EventArgs e)
 {
     try
     {
         ScanEngine scn_engine = new ScanEngine(textBox1.Text);
         Close();
         Scaning scn_window = new Scaning(scn_engine);
         scn_window.Show();
         Start_scaning(scn_engine, scn_window);
     } catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
    // Use this for initialization
    async void Start()
    {
        OutputTextMesh      = OutputText.GetComponent <TextMesh>();
        OutputTextMesh.text = string.Empty;
        g = new GameObject();
        CameraScanEngine = new ScanEngine(PredictionFrequency);
        await CameraScanEngine.Inititalize(this, ModelName, MaxDetections, ProbabilityThreshold, IouThreshold);

#if UNITY_WSA && !UNITY_EDITOR // RUNNING ON WINDOWS
        CameraScanEngine.StartPullCameraFrames();
#else                          // RUNNING IN UNITY
        ModifyOutputText("Sorry ;-( The app is not supported in the Unity player.");
#endif
    }
Example #10
0
        private void addButton_Click(object sender, EventArgs e)
        {
            Stopwatch timer = new Stopwatch();
              ScanEngine engine = new ScanEngine();
              engine.Path = pathText.Text;

              timer.Start();
              engine.Execute();
              timer.Stop();
              statusLabel.Text = "Scan took " + timer.Elapsed.ToString();

              sourceFolder.Metafolders.Add(engine.Folder);
              destinationFolder = new Metafolder() { SourcePath = sourceFolder.SourcePath };

              RefreshSourceTree();
              RefreshDestinationTree();
        }
        public void ScanEngineTriggersStoppedEventWhenEngineHasStopped()
        {
            var logger = new MockLogger();
            var db     = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings);

            var engine = new ScanEngine(db, logger, 0, SharedMockedCoreSettings);

            var signalStoppedEvent = new AutoResetEvent(false);

            engine.Stopped += (s, e) => { signalStoppedEvent.Set(); };
            engine.BeginStart();
            engine.BeginStop();

            var engineStoppedSignaled = signalStoppedEvent.WaitOne(TimeSpan.FromSeconds(5));

            Assert.IsTrue(engineStoppedSignaled);
        }
    async void Start()
    {
        OutputTextMesh      = OutputText.GetComponent <TextMesh>();
        OutputTextMesh.text = string.Empty;
        StoreNetworkResult("0", "TEST", "100%", 0, 0, -1, 1.5f, 3);
        StoreNetworkResult("0", "TEST", "100%", 0, 0, -1, 1.5f, 3);
        // canvas = GameObject.FindGameObjectWithTag("MainCanva").GetComponent<Canvas>();
        Menu.transform.Find("ButtonCollection").Find("ButtonOne").gameObject.GetComponent <Interactable>().OnClick.AddListener(() => { StoreNetworkResult("0", "TEST", "100%", Menu.transform.position.x, Menu.transform.position.y, -Menu.transform.position.z); });
#if UNITY_WSA && !UNITY_EDITOR                    // **RUNNING ON WINDOWS**
        Debug.Log("Starting scan engine");
        var CameraScanEngine = new ScanEngine();  // <-- 1
        await CameraScanEngine.Inititalize(this); // <-- 2

        CameraScanEngine.StartPullCameraFrames(); // <-- 3
        Menu.transform.Find("ButtonCollection").Find("ButtonTwo").gameObject.GetComponent <Interactable>().OnClick.AddListener(() => { CameraScanEngine.ResetReferenceFrame(); });
        Debug.Log("Scan engine started");
#else                          // **RUNNING IN UNITY**
        AddToMessageFlow("Sorry ;-( The app is not supported in the Unity player.");
#endif
    }
        public void YearMonthDayConverterTest()
        {
            var fileReport = new FileReport
            {
                ScanId       = "c7058a1e490c3e9e0ec30958de95cc815e48dba004e54ceeb242085213a64afd-1501098588",
                SHA1         = "0466abcbb6be6301383ceff0d7ce996ff4e89517",
                Resource     = "0466ABCBB6BE6301383CEFF0D7CE996FF4E89517",
                ResponseCode = ReportResponseCode.Present,
                ScanDate     = new DateTime(2017, 08, 10),
                Permalink    =
                    "https://www.virustotal.com/file/c7058a1e490c3e9e0ec30958de95cc815e48dba004e54ceeb242085213a64afd/analysis/1501098588/",
                VerboseMsg = "Scan finished, information embedded",
                Total      = 3,
                Positives  = 1,
                SHA256     = "c7058a1e490c3e9e0ec30958de95cc815e48dba004e54ceeb242085213a64afd",
                MD5        = "7e89844169e755775f09aa4724680281",
                Scans      = new Dictionary <string, ScanEngine>()
            };

            var scan1 = new ScanEngine {
                Detected = true, Result = "Malware.Undefined!8.C (cloud:nWdia2XyY0T)", Version = "25.0.0.1", Update = new DateTime(2017, 07, 26)
            };
            var scan2 = new ScanEngine {
                Detected = false, Result = null, Version = "5.5.1.3", Update = new DateTime(2017, 07, 25)
            };
            var scan3 = new ScanEngine {
                Detected = false, Result = null, Version = "1.0.1.223", Update = new DateTime(2017, 07, 18)
            };

            fileReport.Scans.Add("Rising", scan1);
            fileReport.Scans.Add("Yandex", scan2);
            fileReport.Scans.Add("SentinelOne", scan3);

            var fileReportJson = Json.SerializeObject(fileReport.Scans);

            Assert.True(fileReportJson.Contains("\"Update\":\"20170726\""));
            Assert.True(fileReportJson.Contains("\"Update\":\"20170725\""));
            Assert.True(fileReportJson.Contains("\"Update\":\"20170718\""));
        }
Example #14
0
        /// <summary>
        /// Starts the scanning engine.
        /// </summary>
        /// <returns>True if successful, otherwise false.</returns>
        private bool StartScanEngine()
        {
            try
            {
                ScanEngineInstance          = new ScanEngine(ClientDatabase, ScanEngineLog, 0, CoreSettings);
                ScanEngineInstance.Stopped += Scan_Stopped;
                ScanEngineInstance.BeginStart();

                CoreLog.WriteSystemEvent(
                    string.Format("Scanning Engine has started."),
                    EventLogEntryType.Information, ArchivialLibrary.Constants.EventIDs.StartedScanEngine, true);

                return(true);
            }
            catch (Exception ex)
            {
                var message = "Failed to start the scanning engine.";
                var context = CoreLog.GenerateFullContextStackTrace();
                CoreLog.WriteSystemEvent(message, ex, context, ArchivialLibrary.Constants.EventIDs.FailedScanEngine, true);
                return(false);
            }
        }
        public void ScanEngineConstructorThrowsExceptionWhenNoCoreSettingsProvided()
        {
            var db = new SQLServerClientDatabase(TestConnectionString, new MockLogger(), SharedMockedCoreSettings);

            var engine = new ScanEngine(db, new MockLogger(), 0, null);
        }
 public void ScanEngineConstructorThrowsExceptionWhenNoDatabaseIsProvided()
 {
     var engine = new ScanEngine(null, new MockLogger(), 0, SharedMockedCoreSettings);
 }
Example #17
0
 public Scaning(ScanEngine scn_engine)
 {
     InitializeComponent();
     this.scn_engine = scn_engine;
 }
Example #18
0
        public static async Task <AV_Report> ScanFile(string filepath, string key, List <string> active_avs, bool queued, bool ispremium, Scan scanform)
        {
            AV_Report avreport = new AV_Report();

            VirusTotal       virusTotal = new VirusTotal(key);
            List <AV_Result> results    = new List <AV_Result>();

            virusTotal.UseTLS = true;
            byte[] filebytes = File.ReadAllBytes(filepath);
            string filehash;
            bool   report_fail;

            using (SHA256 sha256obj = SHA256.Create())
            {
                filehash = BytesToHexString(sha256obj.ComputeHash(filebytes));
            }
            FileReport obj_report  = null;
            dynamic    json_report = null;



            while (true)
            {
                try
                {
                    if (ispremium)
                    {
                        obj_report = await virusTotal.GetFileReportAsync(filebytes);

                        report_fail = obj_report.ResponseCode != FileReportResponseCode.Present;
                    }
                    else
                    {
                        string response_str = await GetReportData(filehash);


                        if (response_str != null)
                        {
                            json_report = JsonConvert.DeserializeObject(response_str);
                        }

                        report_fail = response_str == null || json_report.error != null;
                    }



                    if (report_fail)
                    {
                        if (queued)
                        {
                            await Task.Delay(bigtimeout);

                            continue;
                        }
                        else
                        {
                            await virusTotal.ScanFileAsync(filepath);

                            return(null);
                        }
                    }


                    avreport.file = filepath;
                    avreport.hash = filehash;
                    var      culture   = new CultureInfo("ro-RO");
                    DateTime localDate = DateTime.Now;

                    avreport.time = localDate.ToString(culture);


                    if (ispremium)
                    {
                        foreach (var item in active_avs)
                        {
                            ScanEngine scan = obj_report.Scans[item];


                            AV_Result result = new AV_Result();

                            result.av_name = item;


                            if (scan.Detected)
                            {
                                result.result = scan.Result;
                            }
                            else
                            {
                                result.result = "Clean";
                            }

                            results.Add(result);
                        }
                    }
                    else
                    {
                        dynamic scanresults = json_report.data.attributes.last_analysis_results;

                        foreach (var item in active_avs)
                        {
                            dynamic avresult = scanresults[item];

                            AV_Result result = new AV_Result();

                            result.av_name = item;


                            if (avresult.category == "malicious" && avresult.result != null)
                            {
                                result.result = avresult.result;
                            }
                            else
                            {
                                result.result = "Clean";
                            }

                            results.Add(result);
                        }
                    }
                    avreport.av_results = results;
                    return(avreport);
                }
                catch (Exception)
                {
                    bool res = await Settings.IsInternetAvailable();

                    if (!res)
                    {
                        if (scanform.net_msg != null)
                        {
                            scanform.net_msg.Close();
                        }
                        scanform.net_msg = new TotalMessage("Scan Error", "No internet connection :( ", MessageBoxButtons.OK);
                        scanform.net_msg.ShowDialog();
                        scanform.net_msg = null;
                    }

                    await Task.Delay(bigtimeout);

                    continue;
                }
            }
        }