|   |     | 
| Line 1: | Line 1: | 
| − | =Fredag=
 | + | intet at se her. | 
| − | ==Application domain:==
 |  | 
| − |   |  | 
| − | '''Opgave 1:'''
 |  | 
| − | Opret 2 applikationer. Applikation-1 skal være en simpel HelloWorld. Applikation-2 skal være et applikationDomain der henter HelloWorld programmet ind, og eksekvere koden.
 |  | 
| − |   |  | 
| − |   |  | 
| − | Benyt følgende kode til ApplikationDomainet:
 |  | 
| − |   |  | 
| − | <source lang="Csharp">
 |  | 
| − |         static void Main(string[] args)
 |  | 
| − |         {
 |  | 
| − |             AppDomain appDomain = AppDomain.CreateDomain("New Domain");
 |  | 
| − |             appDomain.ExecuteAssembly("HelloWorld.exe");
 |  | 
| − |   |  | 
| − |         }
 |  | 
| − | </source>
 |  | 
| − |   |  | 
| − | '''Opgave 2:'''
 |  | 
| − |   |  | 
| − | Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er "hot"):
 |  | 
| − |   |  | 
| − | Efter at du har hentet filen, højreklik da på den og vælg egnskaber/properties. Nederst i venstre hjørne er der et flueben som skal fjernes i "fjern blokering".
 |  | 
| − |   |  | 
| − | [[File:MadsFjernBlokering.jpg]]
 |  | 
| − |   |  | 
| − |   |  | 
| − | https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing
 |  | 
| − |   |  | 
| − | Eksempel på kode:
 |  | 
| − | <source lang="Csharp">
 |  | 
| − |         static void Main(string[] args)
 |  | 
| − |         {
 |  | 
| − |             AppDomain encryptedFile = AppDomain.CreateDomain("New Appdomain");
 |  | 
| − |             string[] key = {"aaa"};
 |  | 
| − |   |  | 
| − |             int success = encryptedFile.ExecuteAssembly("EncryptedFile.exe ", key);
 |  | 
| − |   |  | 
| − |             if(sucess == 1)
 |  | 
| − |             {
 |  | 
| − |                  Console.Writeline("Koden var korrekt");
 |  | 
| − |             }
 |  | 
| − |             else
 |  | 
| − |             {
 |  | 
| − |                  Console.WriteLine("Koden var forkert");
 |  | 
| − |             }
 |  | 
| − |   |  | 
| − |   |  | 
| − |             Console.ReadKey();
 |  | 
| − |         }
 |  | 
| − | </source>
 |  | 
| − |   |  | 
| − |   |  | 
| − | ''Hjælpekode:''
 |  | 
| − |   |  | 
| − | <source lang="Csharp">
 |  | 
| − |         static void Main(string[] args)
 |  | 
| − |         {
 |  | 
| − |             char[] letters = { 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' };
 |  | 
| − |   |  | 
| − |             int numberOfLetters = letters.Length; //26 LETTERS
 |  | 
| − |             Console.WriteLine("Number of letters: {0}", numberOfLetters);
 |  | 
| − |   |  | 
| − |             for (int i = 0; i < numberOfLetters; i++)
 |  | 
| − |             {
 |  | 
| − |                 Console.WriteLine(letters[i]);
 |  | 
| − |             }
 |  | 
| − |             Console.ReadKey();
 |  | 
| − |         }
 |  | 
| − | </source>
 |  | 
| − |   |  | 
| − |   |  | 
| − |   |  | 
| − | '''Opgave 3:'''
 |  | 
| − |   |  | 
| − | Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:
 |  | 
| − | https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing
 |  | 
| − |   |  | 
| − | (kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også atfjerne blokeringen ved denne fil.)
 |  | 
| − |   |  | 
| − | (hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)
 |  | 
| − |   |  | 
| − |   |  | 
| − |   |  | 
| − | '''Opgave 4:'''
 |  | 
| − | Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:
 |  | 
| − | https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing
 |  | 
| − |   |  | 
| − | Koden indeholder 6 ialt bogstaver (samme regler som sidst).
 |  | 
| − | Benyt hinandens computere til at finde koden.
 |  | 
| − |   |  | 
| − |   |  | 
| − | ==Netværksprotokoller:==
 |  | 
| − |   |  | 
| − |   |  | 
| − | '''Listener:'''
 |  | 
| − | <source lang="Csharp">
 |  | 
| − |   |  | 
| − | static void Main(string[] args)
 |  | 
| − |         {
 |  | 
| − |             UdpClient client = new UdpClient(11001);
 |  | 
| − |             IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);
 |  | 
| − |   |  | 
| − |             byte[] recievedBytes = client.Receive(ref endpoint);
 |  | 
| − |             string recievedMessage = Encoding.ASCII.GetString(recievedBytes);
 |  | 
| − |             Console.WriteLine("Beskeden var: " + recievedMessage);
 |  | 
| − |             Console.ReadKey();
 |  | 
| − |         }
 |  | 
| − |   |  | 
| − | </source>
 |  | 
| − |   |  | 
| − |   |  | 
| − | '''Sender:'''
 |  | 
| − | <source lang="Csharp">
 |  | 
| − |   |  | 
| − |         static void Main(string[] args)
 |  | 
| − |         {
 |  | 
| − |             Console.WriteLine("Type an IP address:");
 |  | 
| − |             string ip = Console.ReadLine();
 |  | 
| − |   |  | 
| − |             UdpClient client = new UdpClient();
 |  | 
| − |             IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);
 |  | 
| − |   |  | 
| − |             string message = "Hej!";
 |  | 
| − |   |  | 
| − |             byte[] bytesToSend = Encoding.ASCII.GetBytes(message);
 |  | 
| − |             client.Send(bytesToSend, bytesToSend.Length, endpoint);
 |  | 
| − |             Console.WriteLine("Message sendt!");
 |  | 
| − |             Console.ReadKey();
 |  | 
| − |         }
 |  | 
| − |   |  | 
| − | </source>
 |  | 
| − |   |  | 
| − | '''Opgave 1:'''
 |  | 
| − | Lav 2 programmer hvor det ene program kan sende en besked til det andet, som kan modtage og vise beskeden.
 |  | 
| − |   |  | 
| − | '''Opgave 2:'''
 |  | 
| − | Lav programmerne så de både kan sende og modtage data til og fra hinanden.
 |  | 
| − |   |  | 
| − | Eksempel på tråde:
 |  | 
| − | <source lang="Csharp">
 |  | 
| − |   |  | 
| − | static void Main(string[] args)
 |  | 
| − |         {
 |  | 
| − |             Console.WriteLine("Start");
 |  | 
| − |  
 |  | 
| − |             Thread thread = new Thread(myThread);
 |  | 
| − |             thread.Start();
 |  | 
| − |  
 |  | 
| − |             string input = Console.ReadLine();
 |  | 
| − |             Console.WriteLine(input);
 |  | 
| − |             Console.ReadKey();
 |  | 
| − |         }
 |  | 
| − |  
 |  | 
| − |         static void myThread()
 |  | 
| − |         {
 |  | 
| − |             for (int i = 0; i < 10; i++)
 |  | 
| − |             {
 |  | 
| − |                 Console.WriteLine(i);
 |  | 
| − |             }
 |  | 
| − |         }
 |  | 
| − |   |  | 
| − | </source>
 |  | 
| − |   |  | 
| − | ==XML==
 |  | 
| − |   |  | 
| − | Eksempel på serialisering:
 |  | 
| − |   |  | 
| − | <source lang="Csharp">
 |  | 
| − | static void Main(string[] args)
 |  | 
| − |         {
 |  | 
| − |             Tank t1 = new Tank();
 |  | 
| − |             XmlSerializer serializer = new XmlSerializer(typeof(Tank));
 |  | 
| − |   |  | 
| − |             StringWriter sWriter = new StringWriter();
 |  | 
| − |   |  | 
| − |             serializer.Serialize(sWriter, t1);
 |  | 
| − |   |  | 
| − |             string myXML = sWriter.ToString();
 |  | 
| − |   |  | 
| − |             Console.WriteLine(myXML);
 |  | 
| − |             Console.ReadKey();
 |  | 
| − |   |  | 
| − |             //Vi sender vores XML igennem en netværksforbindelse.
 |  | 
| − |             //Den bliver nu modtaget:
 |  | 
| − |   |  | 
| − |             Tank enemyTank;
 |  | 
| − |             StringReader sReader = new StringReader(myXML);
 |  | 
| − |             enemyTank = (Tank)serializer.Deserialize(sReader);
 |  | 
| − |   |  | 
| − |             Console.WriteLine("Name of enemy tank is: " + enemyTank.playerName);
 |  | 
| − |             Console.ReadKey();
 |  | 
| − |   |  | 
| − |   |  | 
| − |         }
 |  | 
| − | </source>
 |  | 
| − |   |  | 
| − |   |  | 
| − | '''Opgave 1:'''
 |  | 
| − | Lav et program der serialisere data fra et objekt til XML og som sender det igennem en netværksforbindelse. Når XML strengen bliver modtaget skal den deserialiseres til et objekt.
 |  | 
| − |   |  | 
| − |   |  | 
| − | ==Kryptering og dekryptering==
 |  | 
| − |   |  | 
| − | '''Opgave 1:'''
 |  | 
| − | Lav en algoritme, der kan kryptere en XML eller JSON string ud fra et brugerdefineret password.
 |  | 
| − | Filen skal kunne sendes igennem en netværksforbindelse og dekrypteres med samme password hos modtageren.
 |  | 
| − |   |  | 
| − | Hvis passwordet er forkert, skal brugeren få besked om at nøglen var forkert.
 |  | 
| − |   |  | 
| − | '''Opgave 2:'''
 |  | 
| − | Benyt en selvvalgt krypteringsalgoritme til at kryptere og dekryptere en XML/JSON string.
 |  | 
| − |   |  | 
| − | =Torsdag=
 |  | 
| − | Dagens opgave:
 |  | 
| − | https://drive.google.com/file/d/0B5oDizcmFQ1YNEJvR3l1Wk9SNkk/view?usp=sharing
 |  | 
| − |   |  | 
| − |   |  | 
| − | =Fredag=
 |  | 
| − |   |  | 
| − | Link til eksamensopgave:
 |  | 
| − |   |  | 
| − | https://drive.google.com/file/d/0B5oDizcmFQ1YbzA5bGd1Z0ctUG8/view?usp=sharing
 |  | 
intet at se her.