Browse Source

first commit

isbel.isbel 7 years ago
commit
227c0bbc39
100 changed files with 2094 additions and 0 deletions
  1. BIN
      Manual.pdf
  2. 6 0
      Sality/Collector/ConsoleApplication6/App.config
  3. 29 0
      Sality/Collector/ConsoleApplication6/DataAggregator/Aggregator.cs
  4. 90 0
      Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/FileItem.cs
  5. 97 0
      Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/FirstPhase.cs
  6. 44 0
      Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/Item.cs
  7. 25 0
      Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/TimePhase.cs
  8. 63 0
      Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/Zipper.cs
  9. 35 0
      Sality/Collector/ConsoleApplication6/DataAggregator/SecondPhase/Counter.cs
  10. 130 0
      Sality/Collector/ConsoleApplication6/DataAggregator/SecondPhase/SecondPhase.cs
  11. 71 0
      Sality/Collector/ConsoleApplication6/DataCollector.csproj
  12. 68 0
      Sality/Collector/ConsoleApplication6/Program.cs
  13. 36 0
      Sality/Collector/ConsoleApplication6/Properties/AssemblyInfo.cs
  14. 75 0
      Sality/Collector/ConsoleApplication6/Rec/MainThread.cs
  15. 31 0
      Sality/Collector/ConsoleApplication6/Rec/RecThread.cs
  16. 57 0
      Sality/Collector/ConsoleApplication6/Rec/Server.cs
  17. 48 0
      Sality/Collector/ConsoleApplication6/Rec/UDP_Receiver.cs
  18. 45 0
      Sality/Collector/ConsoleApplication6/Rec/UDP_Sender.cs
  19. BIN
      Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.exe
  20. 6 0
      Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.exe.config
  21. BIN
      Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.pdb
  22. BIN
      Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe
  23. 6 0
      Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe.config
  24. 11 0
      Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe.manifest
  25. BIN
      Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.exe
  26. 6 0
      Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.exe.config
  27. BIN
      Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.pdb
  28. BIN
      Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe
  29. 6 0
      Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe.config
  30. 11 0
      Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe.manifest
  31. BIN
      Sality/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe
  32. 6 0
      Sality/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe.config
  33. 11 0
      Sality/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe.manifest
  34. 6 0
      Sality/Collector/ConsoleApplication6/bin/Release/ConsoleApplication6.vshost.exe.config
  35. 12 0
      Sality/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.csproj.FileListAbsolute.txt
  36. BIN
      Sality/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.csprojResolveAssemblyReference.cache
  37. BIN
      Sality/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.exe
  38. BIN
      Sality/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.pdb
  39. 6 0
      Sality/Collector/ConsoleApplication6/obj/Debug/ConsoleApplication6.csproj.FileListAbsolute.txt
  40. BIN
      Sality/Collector/ConsoleApplication6/obj/Debug/ConsoleApplication6.csprojResolveAssemblyReference.cache
  41. BIN
      Sality/Collector/ConsoleApplication6/obj/Debug/ConsoleApplication6.exe
  42. BIN
      Sality/Collector/ConsoleApplication6/obj/Debug/ConsoleApplication6.pdb
  43. 5 0
      Sality/Collector/ConsoleApplication6/obj/Debug/DataCollector.csproj.FileListAbsolute.txt
  44. BIN
      Sality/Collector/ConsoleApplication6/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache
  45. 0 0
      Sality/Collector/ConsoleApplication6/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  46. 0 0
      Sality/Collector/ConsoleApplication6/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  47. 0 0
      Sality/Collector/ConsoleApplication6/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
  48. 29 0
      Sality/Collector/ConsoleApplication6/obj/Release/AggregatorFinal.csproj.FileListAbsolute.txt
  49. BIN
      Sality/Collector/ConsoleApplication6/obj/Release/AggregatorFinal.csprojResolveAssemblyReference.cache
  50. 6 0
      Sality/Collector/ConsoleApplication6/obj/Release/ConsoleApplication6.csproj.FileListAbsolute.txt
  51. BIN
      Sality/Collector/ConsoleApplication6/obj/Release/ConsoleApplication6.csprojResolveAssemblyReference.cache
  52. BIN
      Sality/Collector/ConsoleApplication6/obj/Release/DesignTimeResolveAssemblyReferences.cache
  53. BIN
      Sality/Collector/ConsoleApplication6/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache
  54. 0 0
      Sality/Collector/ConsoleApplication6/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs
  55. 0 0
      Sality/Collector/ConsoleApplication6/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs
  56. 0 0
      Sality/Collector/ConsoleApplication6/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs
  57. 22 0
      Sality/Collector/DataCollector.sln
  58. BIN
      Sality/Collector/DataCollector.suo
  59. BIN
      Sality/Collector/DataCollector.v12.suo
  60. BIN
      Sality/Collector/FinalAggregator.suo
  61. BIN
      Sality/DataCollector.exe
  62. BIN
      Sality/Participant.exe
  63. 1 0
      Sality/Sality Crawler
  64. 6 0
      ZeroAccess/Collector/ConsoleApplication6/App.config
  65. 29 0
      ZeroAccess/Collector/ConsoleApplication6/DataAggregator/Aggregator.cs
  66. 90 0
      ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/FileItem.cs
  67. 94 0
      ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/FirstPhase.cs
  68. 44 0
      ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/Item.cs
  69. 25 0
      ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/TimePhase.cs
  70. 56 0
      ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/Zipper.cs
  71. 35 0
      ZeroAccess/Collector/ConsoleApplication6/DataAggregator/SecondPhase/Counter.cs
  72. 135 0
      ZeroAccess/Collector/ConsoleApplication6/DataAggregator/SecondPhase/SecondPhase.cs
  73. 71 0
      ZeroAccess/Collector/ConsoleApplication6/DataCollector.csproj
  74. 59 0
      ZeroAccess/Collector/ConsoleApplication6/Program.cs
  75. 36 0
      ZeroAccess/Collector/ConsoleApplication6/Properties/AssemblyInfo.cs
  76. 64 0
      ZeroAccess/Collector/ConsoleApplication6/Rec/MainThread.cs
  77. 31 0
      ZeroAccess/Collector/ConsoleApplication6/Rec/RecThread.cs
  78. 57 0
      ZeroAccess/Collector/ConsoleApplication6/Rec/Server.cs
  79. 41 0
      ZeroAccess/Collector/ConsoleApplication6/Rec/UDP_Receiver.cs
  80. 45 0
      ZeroAccess/Collector/ConsoleApplication6/Rec/UDP_Sender.cs
  81. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/192.168.0.13/2016_5_1_13.txt.gz
  82. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.exe
  83. 6 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.exe.config
  84. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.pdb
  85. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe
  86. 6 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe.config
  87. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.exe
  88. 6 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.exe.config
  89. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.pdb
  90. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe
  91. 6 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe.config
  92. 11 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe.manifest
  93. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.exe
  94. 6 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.exe.config
  95. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.pdb
  96. BIN
      ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe
  97. 6 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe.config
  98. 11 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe.manifest
  99. 6 0
      ZeroAccess/Collector/ConsoleApplication6/bin/Release/ConsoleApplication6.vshost.exe.config
  100. 12 0
      ZeroAccess/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.csproj.FileListAbsolute.txt

BIN
Manual.pdf


+ 6 - 0
Sality/Collector/ConsoleApplication6/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 29 - 0
Sality/Collector/ConsoleApplication6/DataAggregator/Aggregator.cs

@@ -0,0 +1,29 @@
+using ConsoleApplication6;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal.DataAggregator
+{
+    class Aggregator
+    {
+        public static String targetFolder = "aggregatedData";
+        public static String resultFolder = "collectedData";
+        public static String reportFolder = "reports";
+        Thread thread = new Thread(threadFunction);
+        public Aggregator()
+        {
+            thread.Start();
+            
+        }
+
+        static void threadFunction()
+        {
+            FirstPhase.handel(resultFolder, targetFolder);
+        }
+    }
+}

+ 90 - 0
Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/FileItem.cs

@@ -0,0 +1,90 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AgrigateData
+{
+    class FileItem
+    {
+        public static List<Item> list;
+
+        public static void init()
+        {
+            list = new List<Item>();
+        }
+
+        public static void addFileItem(String path)
+        {
+
+            string line;
+            System.IO.StreamReader file = new System.IO.StreamReader(path);
+            String[] splitters = { "##" };
+            String[] parts;
+            TimeSpan timespan;
+            while ((line = file.ReadLine()) != null)
+            {
+                if (line.Contains("##"))
+                {
+                    
+                    parts = line.Split(splitters, StringSplitOptions.None);
+                    timespan = DateTime.Parse(parts[0]).Subtract(DateTime.Parse(parts[1]));
+                    Item.secondsToAdd = (int)timespan.TotalSeconds;
+                    continue;
+                }
+                if (line.Contains("///"))
+                {
+                    Item item = new Item(line);
+                    list.Add(item);
+                }
+            }
+
+            file.Close();
+        }
+
+
+        public static void writeFile(String path)
+        {
+            list = SortAscending(list);
+            if (!File.Exists(path))
+            {
+                // Create a file to write to.
+                using (StreamWriter sw = File.CreateText(path))
+                {
+
+                    foreach (Item item in list)
+                    {
+                        String s = "";
+                        if (item.sourceIP.Length <= 13)
+                        { s = "\t \t: "; }
+                        else
+                        { s = " \t: "; }
+                        if (item.sourceIP.Length <= 10)
+                        { s = "\t \t\t: "; }
+                        String s1 = "";
+                        if (item.desIP.Length <= 13)
+                        { s1 = "\t \t: "; }
+                        else
+                        { s1 = " \t: "; }
+                        if (item.desIP.Length <= 10)
+                        { s1 = "\t \t\t: "; }
+                        sw.WriteLine(item.datetime.ToString("MM/dd/yyyy hh:mm:ss.fff tt")
+                            + " # " + item.sourceIP
+                            + s + item.sourcePort
+                            + "\t# " + item.desIP
+                            + s1 + item.desPort);
+                    }
+
+                }
+            }
+        }
+
+        static List<Item> SortAscending(List<Item> list)
+        {
+            list.Sort((a, b) => a.datetime.CompareTo(b.datetime));
+            return list;
+        }
+    }
+}

+ 97 - 0
Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/FirstPhase.cs

@@ -0,0 +1,97 @@
+using AggregatorFinal.DataAggregator;
+using AgrigateData;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication6
+{
+    class FirstPhase
+    {
+        public static void handel(String input, String Output)
+        {
+            try{
+            
+
+            String[] dirs = Directory.GetDirectories(input);
+
+                DirectoryInfo d = new DirectoryInfo(dirs[0]);//Assuming Test is your Folder
+                FileInfo[] files = d.GetFiles(); //Getting Text files
+
+                foreach (FileInfo file in files)
+                {
+                    bool ok = !File.Exists(Aggregator.targetFolder + "/" + file.Name);
+
+                    if (ok)
+                    {
+                        foreach (String dir in dirs)
+                        {
+                            if (!File.Exists(dir + "/" + file.Name))
+                            {
+                                ok = false;
+                                break;
+                            }
+                        }
+                    }
+                    if (ok)
+                    {
+                        if (file.Extension.Contains("gz") || file.Extension.Contains("rar"))
+                        {
+                            FileItem.init();
+
+                            foreach (String dir in dirs)
+                            {
+                                FileInfo tempFileInfo = new FileInfo(dir + "/" + file.Name);
+                                Zipper.Decompress(tempFileInfo);
+                                FileItem.addFileItem(dir + "/" + file.Name.Replace(".gz", ""));
+                                FileInfo fileInfo = new FileInfo(dir + "/" + file.Name.Replace(".gz", ""));
+                                fileInfo.Delete();
+                            }
+
+
+                            String target = Output + "/" + file.Name.Replace(".gz", "");
+                            FileItem.writeFile(target);
+
+                            Console.WriteLine("Aggregated file: " + file.Name );
+                            FileInfo fileInfo1 = new FileInfo(target);
+                            Zipper.Compress(fileInfo1);
+                            fileInfo1.Delete();
+
+                        }
+                    }
+                }
+               }
+            catch (Exception es)
+            {
+                Console.WriteLine(es.Message);
+            }
+
+        }
+
+        private static List<String> DirSearch(string sDir)
+        {
+            List<String> files = new List<String>();
+            try
+            {
+                foreach (string f in Directory.GetFiles(sDir))
+                {
+                    files.Add(f);
+                }
+                foreach (string d in Directory.GetDirectories(sDir))
+                {
+                    files.AddRange(DirSearch(d));
+                }
+            }
+            catch (System.Exception excpt)
+            {
+
+            }
+
+            return files;
+        }
+    }
+
+}

+ 44 - 0
Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/Item.cs

@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AgrigateData
+{
+    class Item
+    {
+        public String sourceIP;
+        public String sourcePort;
+        public String desIP;
+        public String desPort;
+        public DateTime datetime;
+
+        public static int secondsToAdd = 0;
+        public static String fileName;
+        public static int addSeconds = 0;
+
+        public Item(String sourceIP, String sourcePort, String desIP, String desPort)
+        {
+            this.sourceIP = sourceIP;
+            this.sourcePort = sourcePort;
+            this.desIP = desIP;
+            this.desPort = desPort;
+        }
+
+        public Item(String line)
+        {
+            String[] firstSplitter = { "///" };
+            String[] secondSplitter = { "#" };
+            String[] firstParts = line.Split(firstSplitter, StringSplitOptions.None);
+            String[] sourceParts = firstParts[0].Split(secondSplitter, StringSplitOptions.None);
+            String[] desParts = firstParts[1].Split(secondSplitter, StringSplitOptions.None);
+
+            sourceIP = sourceParts[0];
+            sourcePort = sourceParts[1];
+            desIP = desParts[0];
+            desPort = desParts[1];
+            datetime = DateTime.Parse(firstParts[3]).AddSeconds(-secondsToAdd);
+        }
+    }
+}

+ 25 - 0
Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/TimePhase.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AgrigateData
+{
+    class TimePhrase
+    {
+        public DateTime datetime;
+        public List<Item> list = new List<Item>();
+
+        public TimePhrase(DateTime dTime)
+        {
+            datetime = new DateTime(dTime.Year, dTime.Month, dTime.Day, dTime.Hour, dTime.Minute, dTime.Second);
+        }
+
+        public static List<Item> SortAscending(List<Item> list)
+        {
+            list.Sort((a, b) => a.datetime.CompareTo(b.datetime));
+            return list;
+        }
+    }
+}

+ 63 - 0
Sality/Collector/ConsoleApplication6/DataAggregator/FirstPhase/Zipper.cs

@@ -0,0 +1,63 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication6
+{
+    class Zipper
+    {
+        public static void Compress(FileInfo fi)
+        {
+            // Get the stream of the source file.
+            using (FileStream inFile = fi.OpenRead())
+            {
+                // Prevent compressing hidden and 
+                // already compressed files.
+                if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fi.Extension != ".gz")
+                {
+                    // Create the compressed file.
+                    using (FileStream outFile = File.Create(fi.FullName + ".gz"))
+                    {
+                        using (GZipStream Compress =
+                            new GZipStream(outFile,
+                            CompressionMode.Compress))
+                        {
+                            // Copy the source file into 
+                            // the compression stream.
+                            inFile.CopyTo(Compress);
+
+                        }
+                    }
+                }
+            }
+        }
+
+        public static void Decompress(FileInfo fileToDecompress)
+        {
+            try
+            {
+               
+                using (FileStream originalFileStream = fileToDecompress.OpenRead())
+                {
+                    string currentFileName = fileToDecompress.FullName;
+                    string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);
+                    using (FileStream decompressedFileStream = File.Create(newFileName))
+                    {
+                        using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
+                        {
+                            decompressionStream.CopyTo(decompressedFileStream);
+                        }
+                    }
+                }
+            }
+            catch (Exception es)
+            {
+                Console.WriteLine(es.Message);
+            }
+        }
+    }
+}

+ 35 - 0
Sality/Collector/ConsoleApplication6/DataAggregator/SecondPhase/Counter.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication6.SecondPhase
+{
+    class Counter
+    {
+        public DateTime datetime;
+        public int count;
+        public List<String> addresses = new List<string>();
+
+        public Counter(DateTime datetime)
+        {
+            this.datetime = new DateTime(datetime.Year, datetime.Month, datetime.Day, datetime.Hour, 0, 0);
+            this.count = 0;
+        }
+
+        public void increase(String address)
+        {
+            if (!addresses.Contains(address))
+            {
+                addresses.Add(address);
+                count = count + 1;
+            }
+        }
+
+        public Boolean isTheHour(DateTime time)
+        {
+            return (datetime == new DateTime(time.Year, time.Month, time.Day, time.Hour, 0, 0));
+        }
+    }
+}

+ 130 - 0
Sality/Collector/ConsoleApplication6/DataAggregator/SecondPhase/SecondPhase.cs

@@ -0,0 +1,130 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication6.SecondPhase
+{
+    class SecondPhase
+    {
+        public static void gethoursDiagram(String directory, String outputFile, String OnlineFile)
+        {
+            string line;
+
+            List<String> fileEntries = DirSearch(directory);
+            List<Counter> list1 = new List<Counter>();
+            List<Counter> listOnline = new List<Counter>();
+            foreach (String url in fileEntries)
+            {
+                String[] sp = { "/", "_" };
+                Console.WriteLine(url);
+                String[] spRes = url.Split(sp, StringSplitOptions.None);
+
+                FileInfo fileToDecompress = new FileInfo(url);
+                Zipper.Decompress(fileToDecompress);
+                // Read the file and display it line by line.
+                System.IO.StreamReader file =
+                    new System.IO.StreamReader(url.Replace(".gz", ""));
+                while ((line = file.ReadLine()) != null)
+                {
+
+                    String[] spliters = { "#" };
+                    String[] parts = line.Split(spliters, StringSplitOptions.None);
+                    //DateTime dateTime = DateTime.Parse(parts[0]);
+                    int y = Convert.ToInt32(spRes[spRes.Length - 4]);
+                    int m = Convert.ToInt32(spRes[spRes.Length - 3]);
+                    int d = Convert.ToInt32(spRes[spRes.Length - 2]);
+                    int h = Convert.ToInt32(spRes[spRes.Length-1].Replace(".txt.gz", ""));
+
+                    DateTime dateTime = new DateTime(y, m, d, h, 0, 0);
+
+                    parts[1] = parts[1].Replace("\t", "");
+                    parts[1] = parts[1].Replace(" ", "");
+                    parts[2] = parts[2].Replace("\t", "");
+                    parts[2] = parts[2].Replace(" ", "");
+
+                    Boolean found1 = false;
+                    foreach (Counter counter in listOnline)
+                    {
+                        if (counter.isTheHour(dateTime))
+                        {
+                            counter.increase(parts[1]);
+                            found1 = true;
+                        }
+                    }
+                    if (!found1)
+                    {
+                        Counter counter1 = new Counter(dateTime);
+                        counter1.increase(parts[1]);
+                        listOnline.Add(counter1);
+                    }
+
+                    Boolean found = false;
+                    foreach (Counter counter in list1)
+                    {
+                        if (counter.isTheHour(dateTime))
+                        {
+                            counter.increase(parts[1]);
+                            counter.increase(parts[2]);
+                            found = true;
+                        }
+                    }
+                    if (!found)
+                    {
+                        Counter counter1 = new Counter(dateTime);
+                        counter1.increase(parts[1]);
+                        counter1.increase(parts[2]);
+                        list1.Add(counter1);
+                    }
+
+                }
+                file.Close();
+                File.Delete(url.Replace(".gz", ""));
+
+
+            }
+            System.IO.StreamWriter finalfile = new System.IO.StreamWriter(outputFile);
+            System.IO.StreamWriter Onlinefile = new System.IO.StreamWriter(OnlineFile);
+            List<Counter> SortedList = list1.OrderBy(o => o.datetime).ToList();
+            List<Counter> SortedListOnline = listOnline.OrderBy(o => o.datetime).ToList();
+            foreach (Counter counter in SortedList)
+            {
+                finalfile.WriteLine(counter.datetime + ".." + counter.count);
+            }
+            finalfile.Close();
+
+            foreach (Counter counter in SortedListOnline)
+            {
+                Onlinefile.WriteLine(counter.datetime + ".." + counter.count);
+            }
+
+            Onlinefile.Close();
+
+            Console.WriteLine("Reporting DONE !!!!!!");
+        }
+
+        private static List<String> DirSearch(string sDir)
+        {
+            List<String> files = new List<String>();
+            try
+            {
+                foreach (string f in Directory.GetFiles(sDir))
+                {
+                    files.Add(f);
+                }
+                foreach (string d in Directory.GetDirectories(sDir))
+                {
+                    files.AddRange(DirSearch(d));
+                }
+            }
+            catch (System.Exception excpt)
+            {
+
+            }
+
+            return files;
+        }
+    }
+}

+ 71 - 0
Sality/Collector/ConsoleApplication6/DataCollector.csproj

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{41B7E13C-504D-461C-A32D-CBA7843E175B}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>AggregatorFinal</RootNamespace>
+    <AssemblyName>AggregatorFinal</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DataAggregator\Aggregator.cs" />
+    <Compile Include="DataAggregator\FirstPhase\FileItem.cs" />
+    <Compile Include="DataAggregator\FirstPhase\FirstPhase.cs" />
+    <Compile Include="DataAggregator\FirstPhase\Item.cs" />
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="DataAggregator\FirstPhase\TimePhase.cs" />
+    <Compile Include="DataAggregator\FirstPhase\Zipper.cs" />
+    <Compile Include="Rec\MainThread.cs" />
+    <Compile Include="Rec\RecThread.cs" />
+    <Compile Include="Rec\Server.cs" />
+    <Compile Include="DataAggregator\SecondPhase\Counter.cs" />
+    <Compile Include="DataAggregator\SecondPhase\SecondPhase.cs" />
+    <Compile Include="Rec\UDP_Receiver.cs" />
+    <Compile Include="Rec\UDP_Sender.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 68 - 0
Sality/Collector/ConsoleApplication6/Program.cs

@@ -0,0 +1,68 @@
+using AggregatorFinal;
+using AggregatorFinal.DataAggregator;
+using AggregatorFinal.Rec;
+using ConsoleApplication6;
+using ConsoleApplication6.SecondPhase;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace AgrigateData
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            try
+            {
+
+                DirectoryInfo terget = Directory.CreateDirectory(Aggregator.targetFolder);
+                Directory.CreateDirectory(Aggregator.resultFolder);
+                DirectoryInfo report = Directory.CreateDirectory(Aggregator.reportFolder);
+
+                Console.WriteLine("Enter: LocalIP LocalPort");
+
+                String temp = Console.ReadLine();
+                char[] splitter = { ' ' };
+                String[] parts = temp.Split(splitter, StringSplitOptions.None);
+                string port = parts[1];
+                string ip = parts[0];
+
+                new MainThread(ip, port);
+
+                Console.WriteLine();
+                Console.WriteLine("Opt 1: 'ag' to aggregate");
+                Console.WriteLine("Opt 2: 'report1' to get hourly report");
+
+                while (true)
+                {
+                    temp = Console.ReadLine();
+                    if (temp == "report1")
+                    {
+                        SecondPhase.gethoursDiagram(terget.FullName, report.FullName + "/hourlyReport.txt", report.FullName + "/hourlyOnlineReport.txt");
+                    }
+                    if (temp == "ag")
+                    {
+                        new Aggregator();
+                    }
+                }
+
+            }
+            catch (Exception es)
+            {
+                 Console.WriteLine("Fatel Error: "+ es.Message);
+            }
+
+        }
+
+
+
+    }
+}

+ 36 - 0
Sality/Collector/ConsoleApplication6/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ConsoleApplication6")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ConsoleApplication6")]
+[assembly: AssemblyCopyright("Copyright ©  2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("95a92421-51d6-45dd-ac5d-7a38da2f12d6")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 75 - 0
Sality/Collector/ConsoleApplication6/Rec/MainThread.cs

@@ -0,0 +1,75 @@
+using AggregatorFinal.DataAggregator;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal.Rec
+{
+    class MainThread
+    {
+        Thread _thread;
+        String ip;
+        string port;
+
+        public MainThread(String ip, string port)
+        {
+            this.port = port;
+            this.ip = ip;
+            _thread = new Thread(threadFunction);
+            _thread.Start();
+        }
+
+        private void threadFunction()
+        {
+            try
+            {
+                char[] splitter = { '#' };
+                UDP_Receiver _udp_Receiver = new UDP_Receiver(port);
+                while (true)
+                {
+
+                    string text = _udp_Receiver.receiveMessage();
+                    String[] parts2 = text.Split(splitter, StringSplitOptions.None);
+
+                    String senderIp = parts2[0];
+                    String senderPort = parts2[1];
+                    String fileName = parts2[2];
+
+                    DirectoryInfo di = Directory.CreateDirectory(Aggregator.resultFolder + "/" + senderIp);
+
+
+                    int freePort = FreeTcpPort();
+
+
+                    new RecThread(di.FullName + "/" + fileName, freePort);
+
+                    Console.WriteLine("Rec file: " + fileName + ", from: " + senderIp);
+
+                    UDP_Sender.forwardMessage(senderIp, senderPort, "RequestFile" + "#" + fileName + ":" + ip + ":" + freePort);
+
+                }
+
+            }
+            catch (Exception es)
+            {
+                Console.WriteLine(es.Message);
+            }
+        }
+
+        static int FreeTcpPort()
+        {
+            TcpListener l = new TcpListener(IPAddress.Loopback, 0);
+            l.Start();
+            int port = ((IPEndPoint)l.LocalEndpoint).Port;
+            l.Stop();
+            return port;
+
+        }
+    }
+}

+ 31 - 0
Sality/Collector/ConsoleApplication6/Rec/RecThread.cs

@@ -0,0 +1,31 @@
+using AggregatorFinal.DataAggregator;
+using AggregatorFinal.Rec;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal
+{
+    class RecThread
+    {
+        Thread _thread;
+        String filename;
+        int port;
+
+        public RecThread(String filename, int port)
+        {
+            this.filename = filename;
+            this.port = port;
+            _thread = new Thread(threadFunction);
+            _thread.Start();
+        }
+
+        private void threadFunction()
+        {
+            Server.startLis(port, filename);
+        }
+    }
+}

+ 57 - 0
Sality/Collector/ConsoleApplication6/Rec/Server.cs

@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal.Rec
+{
+    class Server
+    {
+        static int BufferSize = 500;
+
+        public static void startLis(int port, String filename)
+        {
+            TcpListener Listener = null;
+            try
+            {
+                Listener = new TcpListener(IPAddress.Any, port);
+                Listener.Start();
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.Message);
+            }
+
+            byte[] RecData = new byte[BufferSize];
+            int RecBytes;
+
+            TcpClient client = null;
+            NetworkStream netstream = null;
+            try
+            {
+                client = Listener.AcceptTcpClient();
+                netstream = client.GetStream();
+
+                int totalrecbytes = 0;
+                FileStream Fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);
+                while ((RecBytes = netstream.Read(RecData, 0, RecData.Length)) > 0)
+                {
+                    Fs.Write(RecData, 0, RecBytes);
+                    totalrecbytes += RecBytes;
+                }
+                Fs.Close();
+
+                netstream.Close();
+                client.Close();
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.Message);
+            }
+        }
+    }
+}

+ 48 - 0
Sality/Collector/ConsoleApplication6/Rec/UDP_Receiver.cs

@@ -0,0 +1,48 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal
+{
+    class UDP_Receiver
+    {
+        public UdpClient udpClient;
+        string receiverPort;
+        string receiverIP;
+
+
+        public UDP_Receiver(string recPort)
+        {
+            udpClient = new UdpClient(Convert.ToInt32(recPort));
+            receiverPort = ((IPEndPoint)udpClient.Client.LocalEndPoint).Port.ToString();
+            receiverIP = ((IPEndPoint)udpClient.Client.LocalEndPoint).Address.ToString();
+        }
+
+        public string receiveMessage()
+        {
+            try
+            {
+                var remoteEP = new IPEndPoint(IPAddress.Any, 0);
+                byte[] data = udpClient.Receive(ref remoteEP);
+                string message = Encoding.ASCII.GetString(data, 0, data.Length);
+                return message;
+            }
+            catch (Exception es)
+            {
+                Console.WriteLine(es.Message);
+                return "";
+            }
+        }
+
+
+        public string getPort()
+        {
+            return receiverPort;
+        }
+
+    }
+}

+ 45 - 0
Sality/Collector/ConsoleApplication6/Rec/UDP_Sender.cs

@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal
+{
+    class UDP_Sender
+    {
+        public Socket _socket;
+        IPEndPoint _ipEndPoint;
+
+        public UDP_Sender(string ip, string port)
+        {
+            _ipEndPoint = new IPEndPoint(IPAddress.Parse(ip.Trim()), Convert.ToInt32(port.Trim()));
+            _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
+            _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, 0);
+        }
+
+        public void sendMessage(string text)
+        {
+            byte[] data = Encoding.ASCII.GetBytes(text);
+            _socket.SendTo(data, data.Length, SocketFlags.None, _ipEndPoint);
+
+        }
+
+        public static void forwardMessage(string ip, string port, string message)
+        {
+
+            try
+            {
+                UDP_Sender udp_Sender = new UDP_Sender(ip, port);
+                udp_Sender.sendMessage(message);
+                udp_Sender._socket.Close();
+            }
+            catch
+            {
+
+            }
+        }
+    }
+}

BIN
Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.exe


+ 6 - 0
Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

BIN
Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.pdb


BIN
Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe


+ 6 - 0
Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 11 - 0
Sality/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe.manifest

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</assembly>

BIN
Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.exe


+ 6 - 0
Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

BIN
Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.pdb


BIN
Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe


+ 6 - 0
Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 11 - 0
Sality/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe.manifest

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</assembly>

BIN
Sality/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe


+ 6 - 0
Sality/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 11 - 0
Sality/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe.manifest

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</assembly>

+ 6 - 0
Sality/Collector/ConsoleApplication6/bin/Release/ConsoleApplication6.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 12 - 0
Sality/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.csproj.FileListAbsolute.txt

@@ -0,0 +1,12 @@
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Debug\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Debug\AggregatorFinal.csprojResolveAssemblyReference.cache
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\obj\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\obj\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\obj\Debug\AggregatorFinal.csprojResolveAssemblyReference.cache

BIN
Sality/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.csprojResolveAssemblyReference.cache


BIN
Sality/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.exe


BIN
Sality/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.pdb


+ 6 - 0
Sality/Collector/ConsoleApplication6/obj/Debug/ConsoleApplication6.csproj.FileListAbsolute.txt

@@ -0,0 +1,6 @@
+c:\users\isbel\documents\visual studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Debug\ConsoleApplication6.exe.config
+c:\users\isbel\documents\visual studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Debug\ConsoleApplication6.exe
+c:\users\isbel\documents\visual studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Debug\ConsoleApplication6.pdb
+c:\users\isbel\documents\visual studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\obj\Debug\ConsoleApplication6.csprojResolveAssemblyReference.cache
+c:\users\isbel\documents\visual studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\obj\Debug\ConsoleApplication6.exe
+c:\users\isbel\documents\visual studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\obj\Debug\ConsoleApplication6.pdb

BIN
Sality/Collector/ConsoleApplication6/obj/Debug/ConsoleApplication6.csprojResolveAssemblyReference.cache


BIN
Sality/Collector/ConsoleApplication6/obj/Debug/ConsoleApplication6.exe


BIN
Sality/Collector/ConsoleApplication6/obj/Debug/ConsoleApplication6.pdb


+ 5 - 0
Sality/Collector/ConsoleApplication6/obj/Debug/DataCollector.csproj.FileListAbsolute.txt

@@ -0,0 +1,5 @@
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\obj\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\obj\Debug\AggregatorFinal.pdb

BIN
Sality/Collector/ConsoleApplication6/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache


+ 0 - 0
Sality/Collector/ConsoleApplication6/obj/Debug/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs


+ 0 - 0
Sality/Collector/ConsoleApplication6/obj/Debug/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs


+ 0 - 0
Sality/Collector/ConsoleApplication6/obj/Debug/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs


+ 29 - 0
Sality/Collector/ConsoleApplication6/obj/Release/AggregatorFinal.csproj.FileListAbsolute.txt

@@ -0,0 +1,29 @@
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Release\AggregatorFinal.exe.config
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Release\AggregatorFinal.exe
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\obj\Release\AggregatorFinal.exe
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\obj\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Release\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Release\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Release\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Release\AggregatorFinal.csprojResolveAssemblyReference.cache
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator with online\ConsoleApplication6\bin\Release\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator with online\ConsoleApplication6\obj\Release\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator with online\ConsoleApplication6\obj\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator with online\ConsoleApplication6\bin\Release\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator with online\ConsoleApplication6\bin\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator with online\ConsoleApplication6\obj\Release\AggregatorFinal.csprojResolveAssemblyReference.cache
+C:\Users\Isbel\Desktop\Thesis\codes\final_Versions\FinalAggregator with online\ConsoleApplication6\bin\Release\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\Thesis\codes\final_Versions\FinalAggregator with online\ConsoleApplication6\obj\Release\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\Thesis\codes\final_Versions\FinalAggregator with online\ConsoleApplication6\obj\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\Thesis\codes\final_Versions\FinalAggregator with online\ConsoleApplication6\bin\Release\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\Thesis\codes\final_Versions\FinalAggregator with online\ConsoleApplication6\bin\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\Thesis\codes\final_Versions\FinalAggregator with online\ConsoleApplication6\obj\Release\AggregatorFinal.csprojResolveAssemblyReference.cache
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Release\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\obj\Release\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\obj\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\obj\Release\AggregatorFinal.csprojResolveAssemblyReference.cache
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Release\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\P2P Crawler Code\Sality\Collector\ConsoleApplication6\bin\Release\AggregatorFinal.pdb

BIN
Sality/Collector/ConsoleApplication6/obj/Release/AggregatorFinal.csprojResolveAssemblyReference.cache


+ 6 - 0
Sality/Collector/ConsoleApplication6/obj/Release/ConsoleApplication6.csproj.FileListAbsolute.txt

@@ -0,0 +1,6 @@
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\obj\Release\ConsoleApplication6.csprojResolveAssemblyReference.cache
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Release\AggregatorFinal.exe.config
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Release\AggregatorFinal.exe
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\bin\Release\AggregatorFinal.pdb
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\obj\Release\AggregatorFinal.exe
+C:\Users\Isbel\Documents\Visual Studio 2013\Projects\ConsoleApplication6\ConsoleApplication6\obj\Release\AggregatorFinal.pdb

BIN
Sality/Collector/ConsoleApplication6/obj/Release/ConsoleApplication6.csprojResolveAssemblyReference.cache


BIN
Sality/Collector/ConsoleApplication6/obj/Release/DesignTimeResolveAssemblyReferences.cache


BIN
Sality/Collector/ConsoleApplication6/obj/Release/DesignTimeResolveAssemblyReferencesInput.cache


+ 0 - 0
Sality/Collector/ConsoleApplication6/obj/Release/TemporaryGeneratedFile_036C0B5B-1481-4323-8D20-8F5ADCB23D92.cs


+ 0 - 0
Sality/Collector/ConsoleApplication6/obj/Release/TemporaryGeneratedFile_5937a670-0e60-4077-877b-f7221da3dda1.cs


+ 0 - 0
Sality/Collector/ConsoleApplication6/obj/Release/TemporaryGeneratedFile_E7A71F73-0F8D-4B9B-B56E-8E70B10BC5D3.cs


+ 22 - 0
Sality/Collector/DataCollector.sln

@@ -0,0 +1,22 @@
+
+Microsoft Visual Studio Solution File, Format Version 12.00
+# Visual Studio 2013
+VisualStudioVersion = 12.0.21005.1
+MinimumVisualStudioVersion = 10.0.40219.1
+Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataCollector", "ConsoleApplication6\DataCollector.csproj", "{41B7E13C-504D-461C-A32D-CBA7843E175B}"
+EndProject
+Global
+	GlobalSection(SolutionConfigurationPlatforms) = preSolution
+		Debug|Any CPU = Debug|Any CPU
+		Release|Any CPU = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(ProjectConfigurationPlatforms) = postSolution
+		{41B7E13C-504D-461C-A32D-CBA7843E175B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
+		{41B7E13C-504D-461C-A32D-CBA7843E175B}.Debug|Any CPU.Build.0 = Debug|Any CPU
+		{41B7E13C-504D-461C-A32D-CBA7843E175B}.Release|Any CPU.ActiveCfg = Release|Any CPU
+		{41B7E13C-504D-461C-A32D-CBA7843E175B}.Release|Any CPU.Build.0 = Release|Any CPU
+	EndGlobalSection
+	GlobalSection(SolutionProperties) = preSolution
+		HideSolutionNode = FALSE
+	EndGlobalSection
+EndGlobal

BIN
Sality/Collector/DataCollector.suo


BIN
Sality/Collector/DataCollector.v12.suo


BIN
Sality/Collector/FinalAggregator.suo


BIN
Sality/DataCollector.exe


BIN
Sality/Participant.exe


+ 1 - 0
Sality/Sality Crawler

@@ -0,0 +1 @@
+Subproject commit 896b323b4a88f224b89f59a8f62eea337a655fa7

+ 6 - 0
ZeroAccess/Collector/ConsoleApplication6/App.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 29 - 0
ZeroAccess/Collector/ConsoleApplication6/DataAggregator/Aggregator.cs

@@ -0,0 +1,29 @@
+using ConsoleApplication6;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal.DataAggregator
+{
+    class Aggregator
+    {
+        public static String targetFolder = "aggregatedData";
+        public static String resultFolder = "collectedData";
+        public static String reportFolder = "reports";
+        Thread thread = new Thread(threadFunction);
+        public Aggregator()
+        {
+            thread.Start();
+            
+        }
+
+        static void threadFunction()
+        {
+            FirstPhase.handel(resultFolder, targetFolder);
+        }
+    }
+}

+ 90 - 0
ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/FileItem.cs

@@ -0,0 +1,90 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AgrigateData
+{
+    class FileItem
+    {
+        public static List<Item> list;
+
+        public static void init()
+        {
+            list = new List<Item>();
+        }
+
+        public static void addFileItem(String path)
+        {
+
+            string line;
+            System.IO.StreamReader file = new System.IO.StreamReader(path);
+            String[] splitters = { "##" };
+            String[] parts;
+            TimeSpan timespan;
+            while ((line = file.ReadLine()) != null)
+            {
+                if (line.Contains("##"))
+                {
+                    
+                    parts = line.Split(splitters, StringSplitOptions.None);
+                    timespan = DateTime.Parse(parts[0]).Subtract(DateTime.Parse(parts[1]));
+                    Item.secondsToAdd = (int)timespan.TotalSeconds;
+                    continue;
+                }
+                if (line.Contains("///"))
+                {
+                    Item item = new Item(line);
+                    list.Add(item);
+                }
+            }
+
+            file.Close();
+        }
+
+
+        public static void writeFile(String path)
+        {
+            list = SortAscending(list);
+            if (!File.Exists(path))
+            {
+                // Create a file to write to.
+                using (StreamWriter sw = File.CreateText(path))
+                {
+
+                    foreach (Item item in list)
+                    {
+                        String s = "";
+                        if (item.sourceIP.Length <= 13)
+                        { s = "\t \t: "; }
+                        else
+                        { s = " \t: "; }
+                        if (item.sourceIP.Length <= 10)
+                        { s = "\t \t\t: "; }
+                        String s1 = "";
+                        if (item.desIP.Length <= 13)
+                        { s1 = "\t \t: "; }
+                        else
+                        { s1 = " \t: "; }
+                        if (item.desIP.Length <= 10)
+                        { s1 = "\t \t\t: "; }
+                        sw.WriteLine(item.datetime.ToString("MM/dd/yyyy hh:mm:ss.fff tt")
+                            + " # " + item.sourceIP
+                            + s + item.sourcePort
+                            + "\t# " + item.desIP
+                            + s1 + item.desPort);
+                    }
+
+                }
+            }
+        }
+
+        static List<Item> SortAscending(List<Item> list)
+        {
+            list.Sort((a, b) => a.datetime.CompareTo(b.datetime));
+            return list;
+        }
+    }
+}

+ 94 - 0
ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/FirstPhase.cs

@@ -0,0 +1,94 @@
+using AggregatorFinal.DataAggregator;
+using AgrigateData;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication6
+{
+    class FirstPhase
+    {
+        public static void handel(String input, String Output)
+        {
+
+
+            String[] dirs = Directory.GetDirectories(input);
+
+                DirectoryInfo d = new DirectoryInfo(dirs[0]);//Assuming Test is your Folder
+                FileInfo[] files = d.GetFiles(); //Getting Text files
+
+                foreach (FileInfo file in files)
+                {
+                    bool ok = !File.Exists(Aggregator.targetFolder + "/" + file.Name);
+
+                    if (ok)
+                    {
+                        foreach (String dir in dirs)
+                        {
+                            if (!File.Exists(dir + "/" + file.Name))
+                            {
+                                ok = false;
+                                break;
+                            }
+                        }
+                    }
+
+                    if (ok)
+                    {
+                        if (file.Extension.Contains("gz") || file.Extension.Contains("rar"))
+                        {
+                            FileItem.init();
+
+                            foreach (String dir in dirs)
+                            {
+                                FileInfo tempFileInfo = new FileInfo(dir + "/" + file.Name);
+                                Zipper.Decompress(tempFileInfo);
+                                FileItem.addFileItem(dir + "/" + file.Name.Replace(".gz", ""));
+                                FileInfo fileInfo = new FileInfo(dir + "/" + file.Name.Replace(".gz", ""));
+                                fileInfo.Delete();
+                            }
+
+
+                            String target = Output + "/" + file.Name.Replace(".gz", "");
+                            FileItem.writeFile(target);
+
+                            Console.WriteLine("Aggregated file: " + file.Name );
+
+                            FileInfo fileInfo1 = new FileInfo(target);
+                            Zipper.Compress(fileInfo1);
+                            fileInfo1.Delete();
+
+                        }
+                    }
+                }
+            
+
+        }
+
+        private static List<String> DirSearch(string sDir)
+        {
+            List<String> files = new List<String>();
+            try
+            {
+                foreach (string f in Directory.GetFiles(sDir))
+                {
+                    files.Add(f);
+                }
+                foreach (string d in Directory.GetDirectories(sDir))
+                {
+                    files.AddRange(DirSearch(d));
+                }
+            }
+            catch (System.Exception excpt)
+            {
+
+            }
+
+            return files;
+        }
+    }
+
+}

+ 44 - 0
ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/Item.cs

@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AgrigateData
+{
+    class Item
+    {
+        public String sourceIP;
+        public String sourcePort;
+        public String desIP;
+        public String desPort;
+        public DateTime datetime;
+
+        public static int secondsToAdd = 0;
+        public static String fileName;
+        public static int addSeconds = 0;
+
+        public Item(String sourceIP, String sourcePort, String desIP, String desPort)
+        {
+            this.sourceIP = sourceIP;
+            this.sourcePort = sourcePort;
+            this.desIP = desIP;
+            this.desPort = desPort;
+        }
+
+        public Item(String line)
+        {
+            String[] firstSplitter = { "///" };
+            String[] secondSplitter = { "#" };
+            String[] firstParts = line.Split(firstSplitter, StringSplitOptions.None);
+            String[] sourceParts = firstParts[0].Split(secondSplitter, StringSplitOptions.None);
+            String[] desParts = firstParts[1].Split(secondSplitter, StringSplitOptions.None);
+
+            sourceIP = sourceParts[0];
+            sourcePort = sourceParts[1];
+            desIP = desParts[0];
+            desPort = desParts[1];
+            datetime = DateTime.Parse(firstParts[3]).AddSeconds(-secondsToAdd);
+        }
+    }
+}

+ 25 - 0
ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/TimePhase.cs

@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AgrigateData
+{
+    class TimePhrase
+    {
+        public DateTime datetime;
+        public List<Item> list = new List<Item>();
+
+        public TimePhrase(DateTime dTime)
+        {
+            datetime = new DateTime(dTime.Year, dTime.Month, dTime.Day, dTime.Hour, dTime.Minute, dTime.Second);
+        }
+
+        public static List<Item> SortAscending(List<Item> list)
+        {
+            list.Sort((a, b) => a.datetime.CompareTo(b.datetime));
+            return list;
+        }
+    }
+}

+ 56 - 0
ZeroAccess/Collector/ConsoleApplication6/DataAggregator/FirstPhase/Zipper.cs

@@ -0,0 +1,56 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication6
+{
+    class Zipper
+    {
+        public static void Compress(FileInfo fi)
+        {
+            // Get the stream of the source file.
+            using (FileStream inFile = fi.OpenRead())
+            {
+                // Prevent compressing hidden and 
+                // already compressed files.
+                if ((File.GetAttributes(fi.FullName) & FileAttributes.Hidden) != FileAttributes.Hidden & fi.Extension != ".gz")
+                {
+                    // Create the compressed file.
+                    using (FileStream outFile = File.Create(fi.FullName + ".gz"))
+                    {
+                        using (GZipStream Compress =
+                            new GZipStream(outFile,
+                            CompressionMode.Compress))
+                        {
+                            // Copy the source file into 
+                            // the compression stream.
+                            inFile.CopyTo(Compress);
+
+                        }
+                    }
+                }
+            }
+        }
+
+        public static void Decompress(FileInfo fileToDecompress)
+        {
+            using (FileStream originalFileStream = fileToDecompress.OpenRead())
+            {
+                string currentFileName = fileToDecompress.FullName;
+                string newFileName = currentFileName.Remove(currentFileName.Length - fileToDecompress.Extension.Length);
+
+                using (FileStream decompressedFileStream = File.Create(newFileName))
+                {
+                    using (GZipStream decompressionStream = new GZipStream(originalFileStream, CompressionMode.Decompress))
+                    {
+                        decompressionStream.CopyTo(decompressedFileStream);
+                    }
+                }
+            }
+        }
+    }
+}

+ 35 - 0
ZeroAccess/Collector/ConsoleApplication6/DataAggregator/SecondPhase/Counter.cs

@@ -0,0 +1,35 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication6.SecondPhase
+{
+    class Counter
+    {
+        public DateTime datetime;
+        public int count;
+        public List<String> addresses = new List<string>();
+
+        public Counter(DateTime datetime)
+        {
+            this.datetime = new DateTime(datetime.Year, datetime.Month, datetime.Day, datetime.Hour, 0, 0);
+            this.count = 0;
+        }
+
+        public void increase(String address)
+        {
+            if (!addresses.Contains(address))
+            {
+                addresses.Add(address);
+                count = count + 1;
+            }
+        }
+
+        public Boolean isTheHour(DateTime time)
+        {
+            return (datetime == new DateTime(time.Year, time.Month, time.Day, time.Hour, 0, 0));
+        }
+    }
+}

+ 135 - 0
ZeroAccess/Collector/ConsoleApplication6/DataAggregator/SecondPhase/SecondPhase.cs

@@ -0,0 +1,135 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace ConsoleApplication6.SecondPhase
+{
+    class SecondPhase
+    {
+
+
+        public static void gethoursDiagramSepPortsOnline(String directory, String File16470, String File16471)
+        {
+            string line;
+
+            List<String> fileEntries = DirSearch(directory);
+            List<Counter> list16470 = new List<Counter>();
+            List<Counter> list16471 = new List<Counter>();
+            foreach (String url in fileEntries)
+            {
+                String[] sp = { "/", "_" };
+
+                String[] spRes = url.Split(sp, StringSplitOptions.None);
+
+                FileInfo fileToDecompress = new FileInfo(url);
+                Zipper.Decompress(fileToDecompress);
+                // Read the file and display it line by line.
+                System.IO.StreamReader file =
+                    new System.IO.StreamReader(url.Replace(".gz", ""));
+                while ((line = file.ReadLine()) != null)
+                {
+
+                    String[] spliters = { "#" };
+                    String[] parts = line.Split(spliters, StringSplitOptions.None);
+
+                    int y = Convert.ToInt32(spRes[spRes.Length - 4]);
+                    int m = Convert.ToInt32(spRes[spRes.Length - 3]);
+                    int d = Convert.ToInt32(spRes[spRes.Length - 2]);
+                    int h = Convert.ToInt32(spRes[spRes.Length - 1].Replace(".txt.gz", ""));
+
+                    DateTime dateTime = new DateTime(y, m, d, h, 0, 0);
+
+                    parts[1] = parts[1].Replace("\t", "");
+                    parts[1] = parts[1].Replace(" ", "");
+                    parts[2] = parts[2].Replace("\t", "");
+                    parts[2] = parts[2].Replace(" ", "");
+
+                    Boolean found1 = false;
+                    if (parts[1].Contains("16471"))
+                    {
+                        foreach (Counter counter in list16471)
+                        {
+                            if (counter.isTheHour(dateTime))
+                            {
+                                counter.increase(parts[1]);
+                                found1 = true;
+                            }
+                        }
+                        if (!found1)
+                        {
+                            Counter counter1 = new Counter(dateTime);
+                            counter1.increase(parts[1]);
+                            list16471.Add(counter1);
+                        }
+                    }
+                    Boolean found = false;
+                    if (parts[1].Contains("16470"))
+                    {
+                        foreach (Counter counter in list16470)
+                        {
+                            if (counter.isTheHour(dateTime))
+                            {
+                                counter.increase(parts[1]);
+                                found = true;
+                            }
+                        }
+                        if (!found)
+                        {
+                            Counter counter1 = new Counter(dateTime);
+                            counter1.increase(parts[1]);
+                            list16470.Add(counter1);
+                        }
+                    }
+
+                }
+                file.Close();
+                File.Delete(url.Replace(".gz", ""));
+
+
+            }
+            System.IO.StreamWriter finalfile = new System.IO.StreamWriter(File16470);
+            System.IO.StreamWriter Onlinefile = new System.IO.StreamWriter(File16471);
+            List<Counter> SortedList16470 = list16470.OrderBy(o => o.datetime).ToList();
+            List<Counter> SortedList16471 = list16471.OrderBy(o => o.datetime).ToList();
+            foreach (Counter counter in SortedList16470)
+            {
+                finalfile.WriteLine(counter.datetime + ".." + counter.count);
+            }
+            finalfile.Close();
+
+            foreach (Counter counter in SortedList16471)
+            {
+                Onlinefile.WriteLine(counter.datetime + ".." + counter.count);
+            }
+
+            Onlinefile.Close();
+
+            Console.WriteLine("Reporting DONE !!!!!!");
+        }
+
+        private static List<String> DirSearch(string sDir)
+        {
+            List<String> files = new List<String>();
+            try
+            {
+                foreach (string f in Directory.GetFiles(sDir))
+                {
+                    files.Add(f);
+                }
+                foreach (string d in Directory.GetDirectories(sDir))
+                {
+                    files.AddRange(DirSearch(d));
+                }
+            }
+            catch (System.Exception excpt)
+            {
+
+            }
+
+            return files;
+        }
+    }
+}

+ 71 - 0
ZeroAccess/Collector/ConsoleApplication6/DataCollector.csproj

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
+  <Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
+  <PropertyGroup>
+    <Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
+    <Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
+    <ProjectGuid>{41B7E13C-504D-461C-A32D-CBA7843E175B}</ProjectGuid>
+    <OutputType>Exe</OutputType>
+    <AppDesignerFolder>Properties</AppDesignerFolder>
+    <RootNamespace>AggregatorFinal</RootNamespace>
+    <AssemblyName>AggregatorFinal</AssemblyName>
+    <TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
+    <FileAlignment>512</FileAlignment>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugSymbols>true</DebugSymbols>
+    <DebugType>full</DebugType>
+    <Optimize>false</Optimize>
+    <OutputPath>bin\Debug\</OutputPath>
+    <DefineConstants>DEBUG;TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
+    <PlatformTarget>AnyCPU</PlatformTarget>
+    <DebugType>pdbonly</DebugType>
+    <Optimize>true</Optimize>
+    <OutputPath>bin\Release\</OutputPath>
+    <DefineConstants>TRACE</DefineConstants>
+    <ErrorReport>prompt</ErrorReport>
+    <WarningLevel>4</WarningLevel>
+  </PropertyGroup>
+  <ItemGroup>
+    <Reference Include="System" />
+    <Reference Include="System.Core" />
+    <Reference Include="System.Xml.Linq" />
+    <Reference Include="System.Data.DataSetExtensions" />
+    <Reference Include="Microsoft.CSharp" />
+    <Reference Include="System.Data" />
+    <Reference Include="System.Xml" />
+  </ItemGroup>
+  <ItemGroup>
+    <Compile Include="DataAggregator\Aggregator.cs" />
+    <Compile Include="DataAggregator\FirstPhase\FileItem.cs" />
+    <Compile Include="DataAggregator\FirstPhase\FirstPhase.cs" />
+    <Compile Include="DataAggregator\FirstPhase\Item.cs" />
+    <Compile Include="Program.cs" />
+    <Compile Include="Properties\AssemblyInfo.cs" />
+    <Compile Include="DataAggregator\FirstPhase\TimePhase.cs" />
+    <Compile Include="DataAggregator\FirstPhase\Zipper.cs" />
+    <Compile Include="Rec\MainThread.cs" />
+    <Compile Include="Rec\RecThread.cs" />
+    <Compile Include="Rec\Server.cs" />
+    <Compile Include="DataAggregator\SecondPhase\Counter.cs" />
+    <Compile Include="DataAggregator\SecondPhase\SecondPhase.cs" />
+    <Compile Include="Rec\UDP_Receiver.cs" />
+    <Compile Include="Rec\UDP_Sender.cs" />
+  </ItemGroup>
+  <ItemGroup>
+    <None Include="App.config" />
+  </ItemGroup>
+  <Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
+  <!-- To modify your build process, add your task inside one of the targets below and uncomment it. 
+       Other similar extension points exist, see Microsoft.Common.targets.
+  <Target Name="BeforeBuild">
+  </Target>
+  <Target Name="AfterBuild">
+  </Target>
+  -->
+</Project>

+ 59 - 0
ZeroAccess/Collector/ConsoleApplication6/Program.cs

@@ -0,0 +1,59 @@
+using AggregatorFinal;
+using AggregatorFinal.DataAggregator;
+using AggregatorFinal.Rec;
+using ConsoleApplication6;
+using ConsoleApplication6.SecondPhase;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.IO.Compression;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace AgrigateData
+{
+    class Program
+    {
+        static void Main(string[] args)
+        {
+            DirectoryInfo terget = Directory.CreateDirectory(Aggregator.targetFolder);
+            Directory.CreateDirectory(Aggregator.resultFolder);
+            DirectoryInfo report = Directory.CreateDirectory(Aggregator.reportFolder);
+
+            Console.WriteLine("Enter: LocalIP LocalPort");
+            
+            String temp = Console.ReadLine();
+            char[] splitter = { ' ' };
+            String[] parts = temp.Split(splitter, StringSplitOptions.None);
+            string port = parts[1];
+            string ip = parts[0];
+
+            new MainThread(ip, port);
+
+            Console.WriteLine("Opt 1: 'ag' to aggregate");
+            Console.WriteLine("Opt 2: 'report1' to get hourly report");
+            
+
+            while (true)
+            {
+                temp = Console.ReadLine();
+                if (temp == "report1")
+                {
+                    SecondPhase.gethoursDiagramSepPortsOnline(terget.FullName, report.FullName + "/16471Online.txt", report.FullName + "/16470Online.txt");
+                }
+                if (temp == "ag")
+                {
+                    new Aggregator();
+                }
+            }
+
+        }
+
+
+
+    }
+}

+ 36 - 0
ZeroAccess/Collector/ConsoleApplication6/Properties/AssemblyInfo.cs

@@ -0,0 +1,36 @@
+using System.Reflection;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+
+// General Information about an assembly is controlled through the following 
+// set of attributes. Change these attribute values to modify the information
+// associated with an assembly.
+[assembly: AssemblyTitle("ConsoleApplication6")]
+[assembly: AssemblyDescription("")]
+[assembly: AssemblyConfiguration("")]
+[assembly: AssemblyCompany("")]
+[assembly: AssemblyProduct("ConsoleApplication6")]
+[assembly: AssemblyCopyright("Copyright ©  2016")]
+[assembly: AssemblyTrademark("")]
+[assembly: AssemblyCulture("")]
+
+// Setting ComVisible to false makes the types in this assembly not visible 
+// to COM components.  If you need to access a type in this assembly from 
+// COM, set the ComVisible attribute to true on that type.
+[assembly: ComVisible(false)]
+
+// The following GUID is for the ID of the typelib if this project is exposed to COM
+[assembly: Guid("95a92421-51d6-45dd-ac5d-7a38da2f12d6")]
+
+// Version information for an assembly consists of the following four values:
+//
+//      Major Version
+//      Minor Version 
+//      Build Number
+//      Revision
+//
+// You can specify all the values or you can default the Build and Revision Numbers 
+// by using the '*' as shown below:
+// [assembly: AssemblyVersion("1.0.*")]
+[assembly: AssemblyVersion("1.0.0.0")]
+[assembly: AssemblyFileVersion("1.0.0.0")]

+ 64 - 0
ZeroAccess/Collector/ConsoleApplication6/Rec/MainThread.cs

@@ -0,0 +1,64 @@
+using AggregatorFinal.DataAggregator;
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal.Rec
+{
+    class MainThread
+    {
+        Thread _thread;
+        String ip;
+        string port;
+
+        public MainThread(String ip, string port)
+        {
+            this.port = port;
+            this.ip = ip;
+            _thread = new Thread(threadFunction);
+            _thread.Start();
+        }
+
+        private void threadFunction()
+        {
+            char[] splitter = { '#' };
+            UDP_Receiver _udp_Receiver = new UDP_Receiver(port);
+            while (true)
+            {
+                
+
+                string text = _udp_Receiver.receiveMessage();
+                String[] parts2 = text.Split(splitter, StringSplitOptions.None);
+
+                String senderIp = parts2[0];
+                String senderPort = parts2[1];
+                String fileName = parts2[2];
+
+                DirectoryInfo di = Directory.CreateDirectory(Aggregator.resultFolder + "/" + senderIp);
+                int freePort = FreeTcpPort();
+
+                new RecThread(di.FullName + "/" + fileName, freePort);
+
+                Console.WriteLine("Rec file: " + fileName + ", from: " + senderIp);
+
+                UDP_Sender.forwardMessage(senderIp, senderPort, "RequestFile" + "#" + fileName + ":" + ip + ":" + freePort);
+
+            }
+        }
+
+        static int FreeTcpPort()
+        {
+            TcpListener l = new TcpListener(IPAddress.Loopback, 0);
+            l.Start();
+            int port = ((IPEndPoint)l.LocalEndpoint).Port;
+            l.Stop();
+            return port;
+        }
+    }
+}

+ 31 - 0
ZeroAccess/Collector/ConsoleApplication6/Rec/RecThread.cs

@@ -0,0 +1,31 @@
+using AggregatorFinal.DataAggregator;
+using AggregatorFinal.Rec;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal
+{
+    class RecThread
+    {
+        Thread _thread;
+        String filename;
+        int port;
+
+        public RecThread(String filename, int port)
+        {
+            this.filename = filename;
+            this.port = port;
+            _thread = new Thread(threadFunction);
+            _thread.Start();
+        }
+
+        private void threadFunction()
+        {
+            Server.startLis(port, filename);
+        }
+    }
+}

+ 57 - 0
ZeroAccess/Collector/ConsoleApplication6/Rec/Server.cs

@@ -0,0 +1,57 @@
+using System;
+using System.Collections.Generic;
+using System.IO;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal.Rec
+{
+    class Server
+    {
+        static int BufferSize = 500;
+
+        public static void startLis(int port, String filename)
+        {
+            TcpListener Listener = null;
+            try
+            {
+                Listener = new TcpListener(IPAddress.Any, port);
+                Listener.Start();
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.Message);
+            }
+
+            byte[] RecData = new byte[BufferSize];
+            int RecBytes;
+
+            TcpClient client = null;
+            NetworkStream netstream = null;
+            try
+            {
+                client = Listener.AcceptTcpClient();
+                netstream = client.GetStream();
+
+                int totalrecbytes = 0;
+                FileStream Fs = new FileStream(filename, FileMode.OpenOrCreate, FileAccess.Write);
+                while ((RecBytes = netstream.Read(RecData, 0, RecData.Length)) > 0)
+                {
+                    Fs.Write(RecData, 0, RecBytes);
+                    totalrecbytes += RecBytes;
+                }
+                Fs.Close();
+
+                netstream.Close();
+                client.Close();
+            }
+            catch (Exception ex)
+            {
+                Console.WriteLine(ex.Message);
+            }
+        }
+    }
+}

+ 41 - 0
ZeroAccess/Collector/ConsoleApplication6/Rec/UDP_Receiver.cs

@@ -0,0 +1,41 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal
+{
+    class UDP_Receiver
+    {
+        public UdpClient udpClient;
+        string receiverPort;
+        string receiverIP;
+
+
+        public UDP_Receiver(string recPort)
+        {
+            udpClient = new UdpClient(Convert.ToInt32(recPort));
+            receiverPort = ((IPEndPoint)udpClient.Client.LocalEndPoint).Port.ToString();
+            receiverIP = ((IPEndPoint)udpClient.Client.LocalEndPoint).Address.ToString();
+        }
+
+        public string receiveMessage()
+        {
+
+            var remoteEP = new IPEndPoint(IPAddress.Any, 0);
+            byte[] data = udpClient.Receive(ref remoteEP);
+            string message = Encoding.ASCII.GetString(data, 0, data.Length);
+            return message;
+        }
+
+
+        public string getPort()
+        {
+            return receiverPort;
+        }
+
+    }
+}

+ 45 - 0
ZeroAccess/Collector/ConsoleApplication6/Rec/UDP_Sender.cs

@@ -0,0 +1,45 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Net;
+using System.Net.Sockets;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace AggregatorFinal
+{
+    class UDP_Sender
+    {
+        public Socket _socket;
+        IPEndPoint _ipEndPoint;
+
+        public UDP_Sender(string ip, string port)
+        {
+            _ipEndPoint = new IPEndPoint(IPAddress.Parse(ip.Trim()), Convert.ToInt32(port.Trim()));
+            _socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
+            _socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReceiveBuffer, 0);
+        }
+
+        public void sendMessage(string text)
+        {
+            byte[] data = Encoding.ASCII.GetBytes(text);
+            _socket.SendTo(data, data.Length, SocketFlags.None, _ipEndPoint);
+
+        }
+
+        public static void forwardMessage(string ip, string port, string message)
+        {
+
+            try
+            {
+                UDP_Sender udp_Sender = new UDP_Sender(ip, port);
+                udp_Sender.sendMessage(message);
+                udp_Sender._socket.Close();
+            }
+            catch
+            {
+
+            }
+        }
+    }
+}

BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/192.168.0.13/2016_5_1_13.txt.gz


BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.exe


+ 6 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.pdb


BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe


+ 6 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/AggregatorFinal.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.exe


+ 6 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.pdb


BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe


+ 6 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 11 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Debug/ConsoleApplication6.vshost.exe.manifest

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</assembly>

BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.exe


+ 6 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.pdb


BIN
ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe


+ 6 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 11 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Release/AggregatorFinal.vshost.exe.manifest

@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
+<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
+  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
+  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
+    <security>
+      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
+        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
+      </requestedPrivileges>
+    </security>
+  </trustInfo>
+</assembly>

+ 6 - 0
ZeroAccess/Collector/ConsoleApplication6/bin/Release/ConsoleApplication6.vshost.exe.config

@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<configuration>
+    <startup> 
+        <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" />
+    </startup>
+</configuration>

+ 12 - 0
ZeroAccess/Collector/ConsoleApplication6/obj/Debug/AggregatorFinal.csproj.FileListAbsolute.txt

@@ -0,0 +1,12 @@
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Debug\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\bin\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Debug\AggregatorFinal.csprojResolveAssemblyReference.cache
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\final_Versions\FinalAggregator\ConsoleApplication6\obj\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\P2P Crawler Code\ZeroAccess\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.exe.config
+C:\Users\Isbel\Desktop\P2P Crawler Code\ZeroAccess\Collector\ConsoleApplication6\obj\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\P2P Crawler Code\ZeroAccess\Collector\ConsoleApplication6\obj\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\P2P Crawler Code\ZeroAccess\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.exe
+C:\Users\Isbel\Desktop\P2P Crawler Code\ZeroAccess\Collector\ConsoleApplication6\bin\Debug\AggregatorFinal.pdb
+C:\Users\Isbel\Desktop\P2P Crawler Code\ZeroAccess\Collector\ConsoleApplication6\obj\Debug\AggregatorFinal.csprojResolveAssemblyReference.cache

Some files were not shown because too many files changed in this diff