Exemplo n.º 1
0
        public void ImportTextFile()
        {
            PhishDataType Type = PhishDataType.Undefined;

            if (radPhishing.Checked)
            {
                Type = PhishDataType.Negative;
            }
            if (radTrusted.Checked)
            {
                Type = PhishDataType.Positive;
            }

            List <Resource> Resources = new List <Resource>();

            var lines = File.ReadLines(dlgText.FileName);

            foreach (var line in lines)
            {
                Resource res = new Resource(line);
                res.ItemType = Type;
                Resources.Add(res);
            }

            Repository.AddMultiple(Resources);
        }
Exemplo n.º 2
0
        public void LoadGrid(PhishDataType Type)
        {
            List <FrequentItem> Items = Repository
                                        .Find <FrequentItem>(s => s.ItemType == Type)
                                        .ToList();

            grdMain.Rows.Clear();

            foreach (var item in Items)
            {
                grdMain.Rows.Add(item.UID,
                                 item.Term,
                                 item.Frequency.ToString());
            }
        }
Exemplo n.º 3
0
        public void FrequentItemCounter(PhishDataType Type,
                                        int FrequentItems_MinimumLength,
                                        int FrequentItems_Confidence)
        {
            List <string> Urls;

            List <String> UrlsCleaned = new List <string>();

            Dictionary <string, int> dictionary = new Dictionary <string, int>();

            Urls = Repository
                   .Find <Resource>(s => s.ItemType == Type)
                   .Select(a => a.Url)
                   .ToList();

            foreach (var record in Urls)
            {
                String result = Regex.Replace(record, @"\p{P}", " ");
                result = Regex.Replace(result, @"[\d-]", " ");
                result = result.Replace("=", " ");
                UrlsCleaned.Add(result);
            }

            foreach (var item in UrlsCleaned)
            {
                var line  = item.ToLower().Trim();
                var words = line.Split(' ');

                foreach (var word in words)
                {
                    if (String.IsNullOrEmpty(word) || word.Length < FrequentItems_MinimumLength)
                    {
                        continue;
                    }

                    if (!dictionary.ContainsKey(word))
                    {
                        dictionary.Add(word, 1);
                    }
                    else
                    {
                        dictionary[word] = dictionary[word] + 1;
                    }
                }
            }

            List <FrequentItem> FrequentItems = Repository
                                                .Find <FrequentItem>(s => s.ItemType == Type)
                                                .ToList();

            List <FrequentItem> NewFrequentItems = new List <FrequentItem>();

            List <FrequentItem> UpdateFrequentItems = new List <FrequentItem>();

            foreach (var item in dictionary)
            {
                if (item.Value < FrequentItems_Confidence)
                {
                    continue;
                }

                if (FrequentItems.Any(s => s.Term == item.Key))
                {
                    FrequentItem UItem = FrequentItems.Where(s => s.Term == item.Key).FirstOrDefault();
                    UItem.MinimumFrequency = FrequentItems_MinimumLength;
                    UItem.Frequency        = item.Value;
                    UItem.ItemType         = Type;
                    UpdateFrequentItems.Add(UItem);
                }
                else
                {
                    FrequentItem UItem = new FrequentItem();
                    UItem.Term             = item.Key;
                    UItem.ItemType         = Type;
                    UItem.MinimumFrequency = FrequentItems_MinimumLength;
                    UItem.Frequency        = item.Value;
                    NewFrequentItems.Add(UItem);
                }
            }

            Repository.AddMultiple(NewFrequentItems);
            Repository.UpdateMultiple(UpdateFrequentItems);
        }