|
|
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å at fjerne 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.