<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://mars.merhot.dk/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Makn</id>
		<title>Teknologisk videncenter - User contributions [en]</title>
		<link rel="self" type="application/atom+xml" href="http://mars.merhot.dk/w/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Makn"/>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php/Special:Contributions/Makn"/>
		<updated>2026-05-05T05:45:22Z</updated>
		<subtitle>User contributions</subtitle>
		<generator>MediaWiki 1.29.0</generator>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39546</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39546"/>
				<updated>2017-12-12T10:00:35Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
''&lt;br /&gt;
Link til fantastisk bog:''&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YZjlHcFE5c1NxREE/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP Listener v2.0===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Listener&lt;br /&gt;
    {&lt;br /&gt;
        TcpListener tcpListener;&lt;br /&gt;
        TcpClient tcpClient;&lt;br /&gt;
        IPEndPoint endPoint;&lt;br /&gt;
        bool run = true;&lt;br /&gt;
        List&amp;lt;Thread&amp;gt; threadList = new List&amp;lt;Thread&amp;gt;();&lt;br /&gt;
        int port = 11000;&lt;br /&gt;
&lt;br /&gt;
        public Listener()&lt;br /&gt;
        {&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, port);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                if(tcpListener.Pending())&lt;br /&gt;
                {&lt;br /&gt;
                    Thread.Sleep(100);&lt;br /&gt;
                    Thread t = new Thread(ListenerThread);&lt;br /&gt;
                    t.Start();&lt;br /&gt;
                    t.IsBackground = true;&lt;br /&gt;
                    threadList.Add(t);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            port++;&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            NetworkStream ns = tcpClient.GetStream();&lt;br /&gt;
            Console.WriteLine(&amp;quot;TCP connection acceptet by thread.&amp;quot;);&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML:===&lt;br /&gt;
&lt;br /&gt;
Konverter en klasse til XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
 static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Henry h = new Henry();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Money :&amp;quot; + h.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Idears: &amp;quot; + h.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            &lt;br /&gt;
            //XML &lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Henry));&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
            serializer.Serialize(sWriter, h);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Konverter XML tilbage til en klasse:&lt;br /&gt;
            Henry h2 = new Henry();&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            h2 = (Henry)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 money: &amp;quot; + h2.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 idears: &amp;quot; + h2.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Henry klassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
    public class Henry&lt;br /&gt;
    {&lt;br /&gt;
        public float money = 1000;&lt;br /&gt;
        public int idears = 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Opgave:===&lt;br /&gt;
Konverter en klasse til XML og send den igennem en netværksforbindelse. Konverter da XML tilbage til en klasse på en anden computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Opgave med kryptering:===&lt;br /&gt;
Lav et program med 2 funktioner {KrypterString, DekrypterString}&lt;br /&gt;
&lt;br /&gt;
Programmet skal kunne kryptere en plan string til ulæselig tekst, og derefter kunne dekryptere det ulæselige tekst tilbage til plan tekst.&lt;br /&gt;
&lt;br /&gt;
Implementer til sidst dette ind i jeres chatprogram.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Eksempel med interfaces:===&lt;br /&gt;
https://drive.google.com/file/d/1nvg50p6XAFCT5H-eZSJlzPnSf3D6KDCV/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Valg af opgave=&lt;br /&gt;
&lt;br /&gt;
Du skal vælge et projekt som du skal arbejde med.&lt;br /&gt;
Projektet skal opfylde følgende krav:&lt;br /&gt;
&lt;br /&gt;
• Projektet skal være objekt-orienteret. (Projektet skal som minimum indeholde klasser og objekter.)&lt;br /&gt;
&lt;br /&gt;
• Projektet skal indeholde kommunikation igennem et netværk. (Brug gerne sockets)&lt;br /&gt;
&lt;br /&gt;
• Projektet skal have fokus på tråde.&lt;br /&gt;
&lt;br /&gt;
Eksempel på eksamensopgave:&lt;br /&gt;
https://drive.google.com/file/d/1UaeqLPVEFlnuAK8pw9GBS_uzGxgSzjat/view?usp=sharing&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39545</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39545"/>
				<updated>2017-12-12T09:18:50Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Eksempel med interfaces: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
''&lt;br /&gt;
Link til fantastisk bog:''&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YZjlHcFE5c1NxREE/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP Listener v2.0===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Listener&lt;br /&gt;
    {&lt;br /&gt;
        TcpListener tcpListener;&lt;br /&gt;
        TcpClient tcpClient;&lt;br /&gt;
        IPEndPoint endPoint;&lt;br /&gt;
        bool run = true;&lt;br /&gt;
        List&amp;lt;Thread&amp;gt; threadList = new List&amp;lt;Thread&amp;gt;();&lt;br /&gt;
        int port = 11000;&lt;br /&gt;
&lt;br /&gt;
        public Listener()&lt;br /&gt;
        {&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, port);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                if(tcpListener.Pending())&lt;br /&gt;
                {&lt;br /&gt;
                    Thread.Sleep(100);&lt;br /&gt;
                    Thread t = new Thread(ListenerThread);&lt;br /&gt;
                    t.Start();&lt;br /&gt;
                    t.IsBackground = true;&lt;br /&gt;
                    threadList.Add(t);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            port++;&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            NetworkStream ns = tcpClient.GetStream();&lt;br /&gt;
            Console.WriteLine(&amp;quot;TCP connection acceptet by thread.&amp;quot;);&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML:===&lt;br /&gt;
&lt;br /&gt;
Konverter en klasse til XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
 static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Henry h = new Henry();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Money :&amp;quot; + h.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Idears: &amp;quot; + h.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            &lt;br /&gt;
            //XML &lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Henry));&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
            serializer.Serialize(sWriter, h);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Konverter XML tilbage til en klasse:&lt;br /&gt;
            Henry h2 = new Henry();&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            h2 = (Henry)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 money: &amp;quot; + h2.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 idears: &amp;quot; + h2.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Henry klassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
    public class Henry&lt;br /&gt;
    {&lt;br /&gt;
        public float money = 1000;&lt;br /&gt;
        public int idears = 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Opgave:===&lt;br /&gt;
Konverter en klasse til XML og send den igennem en netværksforbindelse. Konverter da XML tilbage til en klasse på en anden computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Opgave med kryptering:===&lt;br /&gt;
Lav et program med 2 funktioner {KrypterString, DekrypterString}&lt;br /&gt;
&lt;br /&gt;
Programmet skal kunne kryptere en plan string til ulæselig tekst, og derefter kunne dekryptere det ulæselige tekst tilbage til plan tekst.&lt;br /&gt;
&lt;br /&gt;
Implementer til sidst dette ind i jeres chatprogram.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Eksempel med interfaces:===&lt;br /&gt;
https://drive.google.com/file/d/1nvg50p6XAFCT5H-eZSJlzPnSf3D6KDCV/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Valg af opgave=&lt;br /&gt;
&lt;br /&gt;
Du skal vælge et projekt som du skal arbejde med.&lt;br /&gt;
Projektet skal opfylde følgende krav:&lt;br /&gt;
&lt;br /&gt;
• Projektet skal være objekt-orienteret. (Projektet skal som minimum indeholde klasser og objekter.)&lt;br /&gt;
&lt;br /&gt;
• Projektet skal indeholde kommunikation igennem et netværk. (Brug gerne sockets)&lt;br /&gt;
&lt;br /&gt;
• Projektet skal have fokus på tråde.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39544</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39544"/>
				<updated>2017-12-12T07:52:00Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Opgave med kryptering: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
''&lt;br /&gt;
Link til fantastisk bog:''&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YZjlHcFE5c1NxREE/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP Listener v2.0===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Listener&lt;br /&gt;
    {&lt;br /&gt;
        TcpListener tcpListener;&lt;br /&gt;
        TcpClient tcpClient;&lt;br /&gt;
        IPEndPoint endPoint;&lt;br /&gt;
        bool run = true;&lt;br /&gt;
        List&amp;lt;Thread&amp;gt; threadList = new List&amp;lt;Thread&amp;gt;();&lt;br /&gt;
        int port = 11000;&lt;br /&gt;
&lt;br /&gt;
        public Listener()&lt;br /&gt;
        {&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, port);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                if(tcpListener.Pending())&lt;br /&gt;
                {&lt;br /&gt;
                    Thread.Sleep(100);&lt;br /&gt;
                    Thread t = new Thread(ListenerThread);&lt;br /&gt;
                    t.Start();&lt;br /&gt;
                    t.IsBackground = true;&lt;br /&gt;
                    threadList.Add(t);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            port++;&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            NetworkStream ns = tcpClient.GetStream();&lt;br /&gt;
            Console.WriteLine(&amp;quot;TCP connection acceptet by thread.&amp;quot;);&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML:===&lt;br /&gt;
&lt;br /&gt;
Konverter en klasse til XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
 static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Henry h = new Henry();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Money :&amp;quot; + h.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Idears: &amp;quot; + h.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            &lt;br /&gt;
            //XML &lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Henry));&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
            serializer.Serialize(sWriter, h);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Konverter XML tilbage til en klasse:&lt;br /&gt;
            Henry h2 = new Henry();&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            h2 = (Henry)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 money: &amp;quot; + h2.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 idears: &amp;quot; + h2.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Henry klassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
    public class Henry&lt;br /&gt;
    {&lt;br /&gt;
        public float money = 1000;&lt;br /&gt;
        public int idears = 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Opgave:===&lt;br /&gt;
Konverter en klasse til XML og send den igennem en netværksforbindelse. Konverter da XML tilbage til en klasse på en anden computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Opgave med kryptering:===&lt;br /&gt;
Lav et program med 2 funktioner {KrypterString, DekrypterString}&lt;br /&gt;
&lt;br /&gt;
Programmet skal kunne kryptere en plan string til ulæselig tekst, og derefter kunne dekryptere det ulæselige tekst tilbage til plan tekst.&lt;br /&gt;
&lt;br /&gt;
Implementer til sidst dette ind i jeres chatprogram.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Eksempel med interfaces:===&lt;br /&gt;
https://drive.google.com/file/d/1nvg50p6XAFCT5H-eZSJlzPnSf3D6KDCV/view?usp=sharing&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39539</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39539"/>
				<updated>2017-12-11T13:14:21Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
''&lt;br /&gt;
Link til fantastisk bog:''&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YZjlHcFE5c1NxREE/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP Listener v2.0===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Listener&lt;br /&gt;
    {&lt;br /&gt;
        TcpListener tcpListener;&lt;br /&gt;
        TcpClient tcpClient;&lt;br /&gt;
        IPEndPoint endPoint;&lt;br /&gt;
        bool run = true;&lt;br /&gt;
        List&amp;lt;Thread&amp;gt; threadList = new List&amp;lt;Thread&amp;gt;();&lt;br /&gt;
        int port = 11000;&lt;br /&gt;
&lt;br /&gt;
        public Listener()&lt;br /&gt;
        {&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, port);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                if(tcpListener.Pending())&lt;br /&gt;
                {&lt;br /&gt;
                    Thread.Sleep(100);&lt;br /&gt;
                    Thread t = new Thread(ListenerThread);&lt;br /&gt;
                    t.Start();&lt;br /&gt;
                    t.IsBackground = true;&lt;br /&gt;
                    threadList.Add(t);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            port++;&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            NetworkStream ns = tcpClient.GetStream();&lt;br /&gt;
            Console.WriteLine(&amp;quot;TCP connection acceptet by thread.&amp;quot;);&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML:===&lt;br /&gt;
&lt;br /&gt;
Konverter en klasse til XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
 static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Henry h = new Henry();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Money :&amp;quot; + h.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Idears: &amp;quot; + h.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            &lt;br /&gt;
            //XML &lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Henry));&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
            serializer.Serialize(sWriter, h);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Konverter XML tilbage til en klasse:&lt;br /&gt;
            Henry h2 = new Henry();&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            h2 = (Henry)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 money: &amp;quot; + h2.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 idears: &amp;quot; + h2.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Henry klassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
    public class Henry&lt;br /&gt;
    {&lt;br /&gt;
        public float money = 1000;&lt;br /&gt;
        public int idears = 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Opgave:===&lt;br /&gt;
Konverter en klasse til XML og send den igennem en netværksforbindelse. Konverter da XML tilbage til en klasse på en anden computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Opgave med kryptering:===&lt;br /&gt;
Lav et program med 2 funktioner {KrypterString, DekrypterString}&lt;br /&gt;
&lt;br /&gt;
Programmet skal kunne kryptere en plan string til ulæselig tekst, og derefter kunne dekryptere det ulæselige tekst tilbage til plan tekst.&lt;br /&gt;
&lt;br /&gt;
Implementer til sidst dette ind i jeres chatprogram.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39538</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39538"/>
				<updated>2017-12-11T11:59:50Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Opgave: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP Listener v2.0===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Listener&lt;br /&gt;
    {&lt;br /&gt;
        TcpListener tcpListener;&lt;br /&gt;
        TcpClient tcpClient;&lt;br /&gt;
        IPEndPoint endPoint;&lt;br /&gt;
        bool run = true;&lt;br /&gt;
        List&amp;lt;Thread&amp;gt; threadList = new List&amp;lt;Thread&amp;gt;();&lt;br /&gt;
        int port = 11000;&lt;br /&gt;
&lt;br /&gt;
        public Listener()&lt;br /&gt;
        {&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, port);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                if(tcpListener.Pending())&lt;br /&gt;
                {&lt;br /&gt;
                    Thread.Sleep(100);&lt;br /&gt;
                    Thread t = new Thread(ListenerThread);&lt;br /&gt;
                    t.Start();&lt;br /&gt;
                    t.IsBackground = true;&lt;br /&gt;
                    threadList.Add(t);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            port++;&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            NetworkStream ns = tcpClient.GetStream();&lt;br /&gt;
            Console.WriteLine(&amp;quot;TCP connection acceptet by thread.&amp;quot;);&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML:===&lt;br /&gt;
&lt;br /&gt;
Konverter en klasse til XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
 static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Henry h = new Henry();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Money :&amp;quot; + h.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Idears: &amp;quot; + h.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            &lt;br /&gt;
            //XML &lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Henry));&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
            serializer.Serialize(sWriter, h);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Konverter XML tilbage til en klasse:&lt;br /&gt;
            Henry h2 = new Henry();&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            h2 = (Henry)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 money: &amp;quot; + h2.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 idears: &amp;quot; + h2.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Henry klassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
    public class Henry&lt;br /&gt;
    {&lt;br /&gt;
        public float money = 1000;&lt;br /&gt;
        public int idears = 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Opgave:===&lt;br /&gt;
Konverter en klasse til XML og send den igennem en netværksforbindelse. Konverter da XML tilbage til en klasse på en anden computer.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Opgave med kryptering:===&lt;br /&gt;
Lav et program med 2 funktioner {KrypterString, DekrypterString}&lt;br /&gt;
&lt;br /&gt;
Programmet skal kunne kryptere en plan string til ulæselig tekst, og derefter kunne dekryptere det ulæselige tekst tilbage til plan tekst.&lt;br /&gt;
&lt;br /&gt;
Implementer til sidst dette ind i jeres chatprogram.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39537</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39537"/>
				<updated>2017-12-11T10:13:40Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* XML: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP Listener v2.0===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Listener&lt;br /&gt;
    {&lt;br /&gt;
        TcpListener tcpListener;&lt;br /&gt;
        TcpClient tcpClient;&lt;br /&gt;
        IPEndPoint endPoint;&lt;br /&gt;
        bool run = true;&lt;br /&gt;
        List&amp;lt;Thread&amp;gt; threadList = new List&amp;lt;Thread&amp;gt;();&lt;br /&gt;
        int port = 11000;&lt;br /&gt;
&lt;br /&gt;
        public Listener()&lt;br /&gt;
        {&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, port);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                if(tcpListener.Pending())&lt;br /&gt;
                {&lt;br /&gt;
                    Thread.Sleep(100);&lt;br /&gt;
                    Thread t = new Thread(ListenerThread);&lt;br /&gt;
                    t.Start();&lt;br /&gt;
                    t.IsBackground = true;&lt;br /&gt;
                    threadList.Add(t);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            port++;&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            NetworkStream ns = tcpClient.GetStream();&lt;br /&gt;
            Console.WriteLine(&amp;quot;TCP connection acceptet by thread.&amp;quot;);&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML:===&lt;br /&gt;
&lt;br /&gt;
Konverter en klasse til XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
 static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Henry h = new Henry();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Money :&amp;quot; + h.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Idears: &amp;quot; + h.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            &lt;br /&gt;
            //XML &lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Henry));&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
            serializer.Serialize(sWriter, h);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Konverter XML tilbage til en klasse:&lt;br /&gt;
            Henry h2 = new Henry();&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            h2 = (Henry)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 money: &amp;quot; + h2.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 idears: &amp;quot; + h2.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Henry klassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
    public class Henry&lt;br /&gt;
    {&lt;br /&gt;
        public float money = 1000;&lt;br /&gt;
        public int idears = 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Opgave:===&lt;br /&gt;
Konverter en klasse til XML og send den igennem en netværksforbindelse. Konverter da XML tilbage til en klasse på en anden computer.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39536</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39536"/>
				<updated>2017-12-11T10:12:12Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP Listener v2.0===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Listener&lt;br /&gt;
    {&lt;br /&gt;
        TcpListener tcpListener;&lt;br /&gt;
        TcpClient tcpClient;&lt;br /&gt;
        IPEndPoint endPoint;&lt;br /&gt;
        bool run = true;&lt;br /&gt;
        List&amp;lt;Thread&amp;gt; threadList = new List&amp;lt;Thread&amp;gt;();&lt;br /&gt;
        int port = 11000;&lt;br /&gt;
&lt;br /&gt;
        public Listener()&lt;br /&gt;
        {&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, port);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                if(tcpListener.Pending())&lt;br /&gt;
                {&lt;br /&gt;
                    Thread.Sleep(100);&lt;br /&gt;
                    Thread t = new Thread(ListenerThread);&lt;br /&gt;
                    t.Start();&lt;br /&gt;
                    t.IsBackground = true;&lt;br /&gt;
                    threadList.Add(t);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            port++;&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            NetworkStream ns = tcpClient.GetStream();&lt;br /&gt;
            Console.WriteLine(&amp;quot;TCP connection acceptet by thread.&amp;quot;);&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===XML:===&lt;br /&gt;
&lt;br /&gt;
Konverter en klasse til XML:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
 static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Henry h = new Henry();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Money :&amp;quot; + h.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Idears: &amp;quot; + h.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            &lt;br /&gt;
            //XML &lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Henry));&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
            serializer.Serialize(sWriter, h);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Konverter XML tilbage til en klasse:&lt;br /&gt;
            Henry h2 = new Henry();&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            h2 = (Henry)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 money: &amp;quot; + h2.money);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Henry 2 idears: &amp;quot; + h2.idears);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Henry klassen:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
    public class Henry&lt;br /&gt;
    {&lt;br /&gt;
        public float money = 1000;&lt;br /&gt;
        public int idears = 0;&lt;br /&gt;
    }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39531</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39531"/>
				<updated>2017-12-11T09:27:17Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP Listener v2.0===&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
class Listener&lt;br /&gt;
    {&lt;br /&gt;
        TcpListener tcpListener;&lt;br /&gt;
        TcpClient tcpClient;&lt;br /&gt;
        IPEndPoint endPoint;&lt;br /&gt;
        bool run = true;&lt;br /&gt;
        List&amp;lt;Thread&amp;gt; threadList = new List&amp;lt;Thread&amp;gt;();&lt;br /&gt;
        int port = 11000;&lt;br /&gt;
&lt;br /&gt;
        public Listener()&lt;br /&gt;
        {&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, port);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            while (true)&lt;br /&gt;
            {&lt;br /&gt;
                if(tcpListener.Pending())&lt;br /&gt;
                {&lt;br /&gt;
                    Thread.Sleep(100);&lt;br /&gt;
                    Thread t = new Thread(ListenerThread);&lt;br /&gt;
                    t.Start();&lt;br /&gt;
                    t.IsBackground = true;&lt;br /&gt;
                    threadList.Add(t);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            port++;&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            NetworkStream ns = tcpClient.GetStream();&lt;br /&gt;
            Console.WriteLine(&amp;quot;TCP connection acceptet by thread.&amp;quot;);&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39530</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39530"/>
				<updated>2017-12-11T07:50:26Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''Opgave:''&lt;br /&gt;
&lt;br /&gt;
Lav et simpelt chatprogram der benytter TCP, hvor man både kan sende og modtage beskeder.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39529</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39529"/>
				<updated>2017-12-11T07:49:26Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===TCP:===&lt;br /&gt;
&lt;br /&gt;
TCP sender:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpClient tcpClient;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            tcpClient = new TcpClient(&amp;quot;172.16.237.161&amp;quot;, 11000);&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
&lt;br /&gt;
            for (int i = 1; i &amp;lt;= 100; i++)&lt;br /&gt;
            {&lt;br /&gt;
                byte[] bytesToSend = Encoding.ASCII.GetBytes(i.ToString() + &amp;quot;\n&amp;quot;);&lt;br /&gt;
                ns.Write(bytesToSend, 0, bytesToSend.Length);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
TCP listener:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static TcpListener tcpListener;&lt;br /&gt;
        static TcpClient tcpClient;&lt;br /&gt;
        static IPEndPoint endPoint;&lt;br /&gt;
        static NetworkStream ns;&lt;br /&gt;
        static Stopwatch sw;&lt;br /&gt;
        static long milliseconds;&lt;br /&gt;
        static int index = 0;&lt;br /&gt;
        static bool run = true;&lt;br /&gt;
&lt;br /&gt;
        static Thread t;&lt;br /&gt;
&lt;br /&gt;
        //Listens for TCP data&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            t = new Thread(ListenerThread);&lt;br /&gt;
            sw = new Stopwatch();&lt;br /&gt;
&lt;br /&gt;
            IPEndPoint ipEndPoint_any = new IPEndPoint(IPAddress.Any, 11000);&lt;br /&gt;
&lt;br /&gt;
            tcpListener = new TcpListener(ipEndPoint_any);&lt;br /&gt;
            tcpClient = new TcpClient();&lt;br /&gt;
            tcpListener.Start();&lt;br /&gt;
&lt;br /&gt;
            tcpClient = tcpListener.AcceptTcpClient();&lt;br /&gt;
            endPoint = (IPEndPoint)tcpClient.Client.RemoteEndPoint;&lt;br /&gt;
            ns = tcpClient.GetStream();&lt;br /&gt;
            t.Start();&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
            Console.WriteLine(&amp;quot;I recived &amp;quot; + index + &amp;quot; number of packages out of 100.&amp;quot;);&lt;br /&gt;
            Console.WriteLine(&amp;quot;It took &amp;quot; + milliseconds + &amp;quot; milliseconds in total&amp;quot;);&lt;br /&gt;
            run = false;&lt;br /&gt;
            t.Abort();&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
        static void ListenerThread()&lt;br /&gt;
        {&lt;br /&gt;
            while (run)&lt;br /&gt;
            {&lt;br /&gt;
                if (ns.DataAvailable)&lt;br /&gt;
                {&lt;br /&gt;
                    if (!sw.IsRunning)&lt;br /&gt;
                    {&lt;br /&gt;
                        sw.Start();&lt;br /&gt;
                    }&lt;br /&gt;
                    byte[] recivedBytes = new byte[512];&lt;br /&gt;
                    byte[] trimmedBytes;&lt;br /&gt;
                    int bytesRead = ns.Read(recivedBytes, 0, recivedBytes.Length);&lt;br /&gt;
                    trimmedBytes = new byte[bytesRead];&lt;br /&gt;
                    Array.Copy(recivedBytes, trimmedBytes, bytesRead);&lt;br /&gt;
                    string result = Encoding.ASCII.GetString(trimmedBytes);&lt;br /&gt;
                    Console.Write(result);&lt;br /&gt;
                    milliseconds = sw.ElapsedMilliseconds;&lt;br /&gt;
                    index++;&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39523</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39523"/>
				<updated>2017-12-08T00:52:05Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Torsdag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag:=&lt;br /&gt;
&lt;br /&gt;
Godmorgen. I dag vil jeg gerne have at i gennemgår følgende emner: UDP netværks-protokollen og tråde.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
For at kunne sene data fra én PC til en anden igennem et netværk skal man benytte en netværks-protokol. Der findes mange protokoller som kan benyttes, men i skal i dag arbejde med UDP protokollen.&lt;br /&gt;
&lt;br /&gt;
UDP er en simpel protokol som kan sende en datapakke afsted imod en IP adresse, men om pakken når frem eller ej, finder vi aldrig ud af. Der er altså i visse tilfælde 50% chance for at pakken når frem til modtageren, hvis vi er på et dårligt netværk.&lt;br /&gt;
&lt;br /&gt;
For at se UDP i aktion, skal vi benytte en Listener og en Sender.&lt;br /&gt;
&lt;br /&gt;
Prøv at indsætte følgende kode i 2 forskellige C# konsol programmer, og start Listeneren først, derefter start Senderen.&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
For at et program både kan sende OG modtage datapakker igennem UDP, skal vi benytte en tråd. En tråd er en måde hvor vi kan få vores applikation til at udføre 2 forskellige jobs på samme tid.&lt;br /&gt;
&lt;br /&gt;
I C# er det heldigvis nemt at oprette en tråd.&lt;br /&gt;
&lt;br /&gt;
Eksempel på en tråd:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
Lav et program, som både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Se hvor langt du kan nå. Vi gennemgår løsningen på mandag.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39515</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39515"/>
				<updated>2017-12-07T13:57:01Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Generelt: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
Mail: makn@mercantec.dk&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39512</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39512"/>
				<updated>2017-12-07T09:33:38Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Torsdag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
'''Husk at fjerne blokaden lige som ved den sidste fil'''&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39511</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39511"/>
				<updated>2017-12-07T09:32:44Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Torsdag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Udvid din bruteforce algoritme så den kan distribueres på flere PC'er, så de hver kan tage et segment af kode,&lt;br /&gt;
Prøv at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/1Fu9I-6HCKhU71gE1rMxpk-UZ2XrwVjeY/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (stadig kun lowercase bogstaver).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39510</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39510"/>
				<updated>2017-12-07T07:58:42Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39509</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39509"/>
				<updated>2017-12-07T07:55:04Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Torsdag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/1KuRDP74fuzuChf4RfFNq2E5pRw6MH2Wp/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39508</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39508"/>
				<updated>2017-12-07T07:46:33Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Torsdag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39507</id>
		<title>Programmering III Experthold</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Experthold&amp;diff=39507"/>
				<updated>2017-12-07T07:43:04Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: Created page with &amp;quot;=Generelt:=   =Torsdag=  ''Sådan importeres en .exe fil ind i et application domain:'' &amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;         static void Main(string[] args)         {             Ap...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Generelt:=&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
&lt;br /&gt;
''Sådan importeres en .exe fil ind i et application domain:''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=39505</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=39505"/>
				<updated>2017-12-07T00:52:28Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: Replaced content with &amp;quot;intet at se her.&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;intet at se her.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39050</id>
		<title>Java II september 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39050"/>
				<updated>2017-09-19T07:59:12Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Generelt:'''&lt;br /&gt;
&lt;br /&gt;
I løbet af dette fag skal du arbejde med et selvvalgt cross-platform emne (Java er oplagt som kodesprog, men andre cross-platform kodesprog er også velkommende)&lt;br /&gt;
&lt;br /&gt;
De 3 sidste dage i forløbet skal du benytte din opnåede viden til at udvikle et produkt aftalt med Henrik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Mandag=&lt;br /&gt;
&lt;br /&gt;
Du skal i dag kombinere et ''emne'' og et ''kodesprog/IDE''. Dine muligheder er som følger:&lt;br /&gt;
&lt;br /&gt;
'''Emne:'''&lt;br /&gt;
&lt;br /&gt;
• Machine-learning.&lt;br /&gt;
&lt;br /&gt;
• Deep-leraning.&lt;br /&gt;
&lt;br /&gt;
• Udvikling af mobile applikationer.&lt;br /&gt;
&lt;br /&gt;
• Fokus på cross-platform udvikling.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt emne]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Kodesprog/IDE:'''&lt;br /&gt;
&lt;br /&gt;
​• C++.&lt;br /&gt;
&lt;br /&gt;
• .Net Core.&lt;br /&gt;
&lt;br /&gt;
• Unity3D.&lt;br /&gt;
&lt;br /&gt;
• Unreal engine.&lt;br /&gt;
&lt;br /&gt;
• Java.&lt;br /&gt;
&lt;br /&gt;
• Python.&lt;br /&gt;
&lt;br /&gt;
• Swift.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt kodesprog/IDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Der er mulighed for at finde materialer online fra Lynda.com, Safaribooks online osv..''&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
&lt;br /&gt;
Du skal lave en projektformulering der beskriver det emne/kodesprog du gerne vil arbejde med. &lt;br /&gt;
Tirsdag i denne uge bliver din projektformulering låst fast, hvorefter Henrik vil sammenligne dit projekt med de målpinde som vi har aftalt i din projektformulering.&lt;br /&gt;
&lt;br /&gt;
Torsdag i uge 39 skal du aflevere dit projekt, hvorefter du skal forsvare dit projekt for Henrik den efterfølgende fredag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Har du spørgsmål så stil dem endelig så tidligt i forløbet som muligt, så du kan få fastlagt dit projekt inden det bliver &amp;quot;låst fast&amp;quot;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Tirsdag:=&lt;br /&gt;
&lt;br /&gt;
Dokumentation af program:&lt;br /&gt;
&lt;br /&gt;
Formålet med dokumentationen er at overdrage program-udvikling og vedligeholdelse til en kollega.&lt;br /&gt;
Det skal være muligt at forstå funktionaliteten, opbygningen valg af teknologier og installation af nødvendige værktøjer på udviklings-miljø og drift-miljø. Det er vigtigt at dokumentere kendte problematikker og begrænsninger af løsningen for eksempel skalerbarhed. Der lægges vægt på at eventuelle sikkerheds-aspekter er velovervejede.&lt;br /&gt;
Husk: Dokumentationen skal udføres som du gerne selv vil modtage den!&lt;br /&gt;
&lt;br /&gt;
Længen af dokumentationen: Umulig at sige – men vi forventer at forstå projektet. Typisk er et sådant dokument fem til tyve sider.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39039</id>
		<title>Java II september 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39039"/>
				<updated>2017-09-18T06:54:50Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Generelt:'''&lt;br /&gt;
&lt;br /&gt;
I løbet af dette fag skal du arbejde med et selvvalgt cross-platform emne (Java er oplagt som kodesprog, men andre cross-platform kodesprog er også velkommende)&lt;br /&gt;
&lt;br /&gt;
De 3 sidste dage i forløbet skal du benytte din opnåede viden til at udvikle et produkt aftalt med Henrik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mandag:'''&lt;br /&gt;
&lt;br /&gt;
Du skal i dag kombinere et ''emne'' og et ''kodesprog/IDE''. Dine muligheder er som følger:&lt;br /&gt;
&lt;br /&gt;
'''Emne:'''&lt;br /&gt;
&lt;br /&gt;
• Machine-learning.&lt;br /&gt;
&lt;br /&gt;
• Deep-leraning.&lt;br /&gt;
&lt;br /&gt;
• Udvikling af mobile applikationer.&lt;br /&gt;
&lt;br /&gt;
• Fokus på cross-platform udvikling.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt emne]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Kodesprog/IDE:'''&lt;br /&gt;
&lt;br /&gt;
​• C++.&lt;br /&gt;
&lt;br /&gt;
• .Net Core.&lt;br /&gt;
&lt;br /&gt;
• Unity3D.&lt;br /&gt;
&lt;br /&gt;
• Unreal engine.&lt;br /&gt;
&lt;br /&gt;
• Java.&lt;br /&gt;
&lt;br /&gt;
• Python.&lt;br /&gt;
&lt;br /&gt;
• Swift.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt kodesprog/IDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Der er mulighed for at finde materialer online fra Lynda.com, Safaribooks online osv..''&lt;br /&gt;
&lt;br /&gt;
'''Opgave:'''&lt;br /&gt;
&lt;br /&gt;
Du skal lave en projektformulering der beskriver det emne/kodesprog du gerne vil arbejde med. &lt;br /&gt;
Tirsdag i denne uge bliver din projektformulering låst fast, hvorefter Henrik vil sammenligne dit projekt med de målpinde som vi har aftalt i din projektformulering.&lt;br /&gt;
&lt;br /&gt;
Torsdag i uge 39 skal du aflevere dit projekt, hvorefter du skal forsvare dit projekt for Henrik den efterfølgende fredag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Har du spørgsmål så stil dem endelig så tidligt i forløbet som muligt, så du kan få fastlagt dit projekt inden det bliver &amp;quot;låst fast&amp;quot;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39038</id>
		<title>Java II september 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39038"/>
				<updated>2017-09-18T06:52:50Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Generelt:'''&lt;br /&gt;
&lt;br /&gt;
I løbet af dette fag skal du arbejde med et selvvalgt cross-platform emne (Java er oplagt som kodesprog, men andre cross-platform kodesprog er også velkommende)&lt;br /&gt;
&lt;br /&gt;
De 3 sidste dage i forløbet skal du benytte din opnåede viden til at udvikle et produkt aftalt med Henrik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mandag:'''&lt;br /&gt;
&lt;br /&gt;
Du skal i dag kombinere et ''emne'' og et ''kodesprog/IDE''. Dine muligheder er som følger:&lt;br /&gt;
&lt;br /&gt;
'''Emne:'''&lt;br /&gt;
&lt;br /&gt;
• Machine-learning.&lt;br /&gt;
&lt;br /&gt;
• Deep-leraning.&lt;br /&gt;
&lt;br /&gt;
• Udvikling af mobile applikationer.&lt;br /&gt;
&lt;br /&gt;
• Fokus på cross-platform udvikling.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt emne]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Kodesprog/IDE:'''&lt;br /&gt;
&lt;br /&gt;
​• C++.&lt;br /&gt;
&lt;br /&gt;
• .Net Core.&lt;br /&gt;
&lt;br /&gt;
• Unity3D.&lt;br /&gt;
&lt;br /&gt;
• Unreal engine.&lt;br /&gt;
&lt;br /&gt;
• Java.&lt;br /&gt;
&lt;br /&gt;
• Python.&lt;br /&gt;
&lt;br /&gt;
• Swift.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt kodesprog/IDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Der er mulighed for at finde materialer online fra Lynda.com, Safaribooks online osv..''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Du skal lave en projektformulering der beskriver det emne/kodesprog du gerne vil arbejde med. &lt;br /&gt;
Tirsdag i denne uge bliver din projektformulering låst fast, hvorefter Henrik vil sammenligne dit projekt med de målpinde som vi har aftalt i din projektformulering.&lt;br /&gt;
&lt;br /&gt;
Torsdag i uge 39 skal du aflevere dit projekt, hvorefter du skal forsvare dit projekt for Henrik den efterfølgende fredag.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Har du spørgsmål så stil dem endelig så tidligt i forløbet som muligt, så du kan få fastlagt dit projekt inden det bliver &amp;quot;låst fast&amp;quot;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39037</id>
		<title>Java II september 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39037"/>
				<updated>2017-09-17T22:55:53Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Generelt:'''&lt;br /&gt;
&lt;br /&gt;
I løbet af dette fag skal du arbejde med et selvvalgt cross-platform emne (Java er oplagt som kodesprog, men andre cross-platform kodesprog er også velkommende)&lt;br /&gt;
&lt;br /&gt;
De 3 sidste dage i forløbet skal du benytte din opnåede viden til at udvikle et produkt aftalt med Henrik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mandag:'''&lt;br /&gt;
&lt;br /&gt;
Du skal i dag kombinere et ''emne'' og et ''kodesprog/IDE''. Dine muligheder er som følger:&lt;br /&gt;
&lt;br /&gt;
'''Emne:'''&lt;br /&gt;
&lt;br /&gt;
• Machine-learning.&lt;br /&gt;
&lt;br /&gt;
• Deep-leraning.&lt;br /&gt;
&lt;br /&gt;
• Udvikling af mobile applikationer.&lt;br /&gt;
&lt;br /&gt;
• Fokus på cross-platform udvikling.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt emne]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Kodesprog/IDE:'''&lt;br /&gt;
&lt;br /&gt;
​• C++.&lt;br /&gt;
&lt;br /&gt;
• .Net Core.&lt;br /&gt;
&lt;br /&gt;
• Unity3D.&lt;br /&gt;
&lt;br /&gt;
• Unreal engine.&lt;br /&gt;
&lt;br /&gt;
• Java.&lt;br /&gt;
&lt;br /&gt;
• Python.&lt;br /&gt;
&lt;br /&gt;
• Swift.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt kodesprog/IDE]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Der er mulighed for at finde materialer online fra Lynda.com, Safaribooks online osv..''&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39036</id>
		<title>Java II september 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39036"/>
				<updated>2017-09-17T22:55:32Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Generelt:'''&lt;br /&gt;
&lt;br /&gt;
I løbet af dette fag skal du arbejde med et selvvalgt cross-platform emne (Java er oplagt som kodesprog, men andre cross-platform kodesprog er også velkommende)&lt;br /&gt;
&lt;br /&gt;
De 3 sidste dage i forløbet skal du benytte din opnåede viden til at udvikle et produkt aftalt med Henrik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mandag:'''&lt;br /&gt;
&lt;br /&gt;
Du skal i dag kombinere et ''emne'' og et ''kodesprog/IDE''. Dine muligheder er som følger:&lt;br /&gt;
&lt;br /&gt;
'''Emne:'''&lt;br /&gt;
&lt;br /&gt;
• Machine-learning.&lt;br /&gt;
&lt;br /&gt;
• Deep-leraning.&lt;br /&gt;
&lt;br /&gt;
• Udvikling af mobile applikationer.&lt;br /&gt;
&lt;br /&gt;
• Fokus på cross-platform udvikling.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt emne]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Kodesprog/IDE:'''&lt;br /&gt;
&lt;br /&gt;
​• C++.&lt;br /&gt;
&lt;br /&gt;
• .Net Core.&lt;br /&gt;
&lt;br /&gt;
• Unity3D.&lt;br /&gt;
&lt;br /&gt;
• Unreal engine.&lt;br /&gt;
&lt;br /&gt;
• Java.&lt;br /&gt;
&lt;br /&gt;
• Python.&lt;br /&gt;
&lt;br /&gt;
• Swift.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt kodesprog/IDE]&lt;br /&gt;
&lt;br /&gt;
Der er mulighed for at finde materialer online fra Lynda.com, Safaribooks online osv..&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39035</id>
		<title>Java II september 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39035"/>
				<updated>2017-09-17T22:54:10Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Generelt:'''&lt;br /&gt;
&lt;br /&gt;
I løbet af dette fag skal du arbejde med et selvvalgt cross-platform emne (Java er oplagt som kodesprog, men andre cross-platform kodesprog er også velkommende)&lt;br /&gt;
&lt;br /&gt;
De 3 sidste dage i forløbet skal du benytte din opnåede viden til at udvikle et produkt aftalt med Henrik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mandag:'''&lt;br /&gt;
&lt;br /&gt;
Du skal i dag kombinere et ''emne'' og et ''kodesprog/IDE''. Dine muligheder er som følger:&lt;br /&gt;
&lt;br /&gt;
'''Emne:'''&lt;br /&gt;
&lt;br /&gt;
• Machine-learning.&lt;br /&gt;
&lt;br /&gt;
• Deep-leraning.&lt;br /&gt;
&lt;br /&gt;
• Udvikling af mobile applikationer.&lt;br /&gt;
&lt;br /&gt;
• Fokus på cross-platform udvikling.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt emne]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Kodesprog/IDE:'''&lt;br /&gt;
&lt;br /&gt;
​• C++.&lt;br /&gt;
&lt;br /&gt;
• .Net Core.&lt;br /&gt;
&lt;br /&gt;
• Unity3D.&lt;br /&gt;
&lt;br /&gt;
• Unreal engine.&lt;br /&gt;
&lt;br /&gt;
• Java.&lt;br /&gt;
&lt;br /&gt;
• Python.&lt;br /&gt;
&lt;br /&gt;
• Swift.&lt;br /&gt;
&lt;br /&gt;
• [Indsæt selvvalgt kodesprog/IDE]&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39034</id>
		<title>Java II september 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Java_II_september_2017&amp;diff=39034"/>
				<updated>2017-09-17T22:51:29Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: Created page with &amp;quot;'''Generelt:'''  I løbet af dette fag skal du arbejde med et selvvalgt cross-platform emne (Java er oplagt som kodesprog, men andre cross-platform kodesprog er også velkomme...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Generelt:'''&lt;br /&gt;
&lt;br /&gt;
I løbet af dette fag skal du arbejde med et selvvalgt cross-platform emne (Java er oplagt som kodesprog, men andre cross-platform kodesprog er også velkommende)&lt;br /&gt;
&lt;br /&gt;
De 3 sidste dage i forløbet skal du benytte din opnåede viden til at udvikle et produkt aftalt med Henrik.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Mandag:'''&lt;br /&gt;
&lt;br /&gt;
Du skal i dag kombinere et ''emne'' og et ''kodesprog/IDE''. Dine muligheder er som følger:&lt;br /&gt;
&lt;br /&gt;
'''Emne:'''&lt;br /&gt;
Machine-learning.&lt;br /&gt;
Deep-leraning.&lt;br /&gt;
Udvikling af mobile applikationer.&lt;br /&gt;
Fokus på cross-platform udvikling.&lt;br /&gt;
[Indsæt selvvalgt emne]&lt;br /&gt;
&lt;br /&gt;
'''Kodesprog/IDE:'''&lt;br /&gt;
​C++.&lt;br /&gt;
.Net Core.&lt;br /&gt;
Unity3D.&lt;br /&gt;
Unreal engine.&lt;br /&gt;
Java.&lt;br /&gt;
Python.&lt;br /&gt;
Swift.&lt;br /&gt;
[Indsæt selvvalgt kodesprog/IDE]&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Udstyrsregistrering&amp;diff=38462</id>
		<title>Udstyrsregistrering</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Udstyrsregistrering&amp;diff=38462"/>
				<updated>2017-06-28T07:52:36Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Grundforløb */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=1 ;style=&amp;quot;margin: 0 auto; text-align: center;cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
=== Tabel: HP EliteDesk 800 G1 - PC status oversigt ===&lt;br /&gt;
|- bgcolor=lightgrey&lt;br /&gt;
! PC-nummer: !! Serie-nummer: !!  RAM (GB): !! SSD (GB): !! Netkort: !! Hængelås !! Bemærkninger:&lt;br /&gt;
|-&lt;br /&gt;
! Norm !! Norm !! 24 !! 250 !! 2 !! Ja !! Normal bestykning&lt;br /&gt;
|-&lt;br /&gt;
| C059 || CZC35212XJ || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C060 || CZC35212X8 || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C061 || CZC35212X2 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C062 || CZC35212WS || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C063 || CZC35212X3 || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C064 || CZC40324MP || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C065 || CZC35212XF || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C066 || CZC35212XB || 24 || 128 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C067 || CZC35212WZ || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C068 || CZC35212XH || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C069 || CZC35212WV || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C070 || CZC35212X6 || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C071 || CZC35212WT || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C072 || CZC35212WP || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C073 || CZC35212XG || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C076 || Ukendt || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C077 || Ukendt || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C080 || CZC35212WX || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C081 || CZC35212XD || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C082 || CZC35212X1 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C084 || CZC40324MR || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C086 || CZC40324MN || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C088 || CZC40324M7 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C089 || CZC40324M4 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C090 || Ukendt || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C092 || CZC40324M5 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C093 || CZC40324MK || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C095 || CZC40324M6 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C096 || CZC40324MJ || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C097 || CZC40324M3 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| Ukendt || CZC35212WQ || Ingen || Ingen || Ingen || Ja || Defekt - tænder ikke ved tryk på power-knap. Er ved SKP.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|border=1 ;style=&amp;quot;margin: 0 auto; text-align: center;cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
&lt;br /&gt;
=== Tabel: HP EliteDesk 800 G2 - PC status oversigt ===&lt;br /&gt;
|- bgcolor=lightgrey&lt;br /&gt;
! PC-nummer: !! Serie-nummer: !!  RAM (GB): !! SSD (GB): !! Netkort: !! Hængelås !! Bemærkninger:&lt;br /&gt;
|-&lt;br /&gt;
! Norm !! Norm !! 32 !! 250 !! 2 !! Ja !! Normal bestykning&lt;br /&gt;
|-&lt;br /&gt;
| C001 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C002 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C003 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C004 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C005 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C006 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C007 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C008 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C009 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C010 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C011 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C012 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C013 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C014 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C015 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C016 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C017 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C018 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C019 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C020 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Netværks udstyr=&lt;br /&gt;
&lt;br /&gt;
=== Cisco ===&lt;br /&gt;
&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZBFU&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAR8&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAJZ&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAQ6&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029X0G2&lt;br /&gt;
 WS-C2960-24TT-L	FOC1225X4YK&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZB69&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZBWD&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAN8&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZANG&lt;br /&gt;
 WS-C2960-24TT-L	FOC1123Z78P&lt;br /&gt;
 WS-C2960-24TT-L	FOC1123Z78L&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029X20W&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAPT&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZARV&lt;br /&gt;
 WS-C2960-24TT-L	FOC1338V0MY&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAQL&lt;br /&gt;
 WS-C2960-24TT-L	FOC1401Y1BA&lt;br /&gt;
 WS-C3560-24TS-S	CAT1028ZKJ6&lt;br /&gt;
 WS-C3560-24TS-S	CAT1028ZKCX&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZBWW&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAJT&lt;br /&gt;
 WS-C2960-24TT-L	FOC1132W1EB&lt;br /&gt;
 WS-C3560-48TS-S	CAT1012N6HW&lt;br /&gt;
 WS-C3560-24TS-S	CAT1028ZKCJ&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZBXA&lt;br /&gt;
 WS-C3560-24TS-S	FOC1123Z78F&lt;br /&gt;
 WS-C2960-24TT-L	FOC1123Z7DB&lt;br /&gt;
 WS-C2960G-8TC-L	FOC1413W0PA&lt;br /&gt;
 WS-C2960-8TC-L	FOC1330V5UH&lt;br /&gt;
 WS-C2960-8TC-L	FOC1330V5ZB&lt;br /&gt;
 WS-C2960-8TC-L	FOC1213Z58C&lt;br /&gt;
 WS-C2960-8TC-L	FOC1429V4KJ&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=HP pc'er - Beskrivelse=&lt;br /&gt;
*HOT Data har et større antal HP EliteDesk 800 G1 og G2 modeller i Short Form Factor udgaven&lt;br /&gt;
**[http://mars.tekkom.dk/mediawiki/index.php/HP_EliteDesk_800_G1_SSF_-_Workstation G1 maskinerne er beskrevet her]&lt;br /&gt;
**[http://mars.merhot.dk/mediawiki/index.php/HP_EliteDesk_800_G2_SSF_-_Workstation G2 maskinerne er beskrevet her]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Lenovo=&lt;br /&gt;
*[[Lenovo 7360WTE]]&lt;br /&gt;
&lt;br /&gt;
=Udlån=&lt;br /&gt;
&lt;br /&gt;
==Grundforløb==&lt;br /&gt;
Udlånt 1 stk. Macbook air af serial No.: C02GKEYSDJWT med oplader  - Lånt af Henrik Graversen d. 28-06-2017&lt;br /&gt;
&lt;br /&gt;
==Teksnisk Skole Silkeborg==&lt;br /&gt;
*Router 2620 nummer 21&lt;br /&gt;
*Router 2620 nummer 20&lt;br /&gt;
*Catalyst 2950&lt;br /&gt;
==Elever==&lt;br /&gt;
  &lt;br /&gt;
 Gæste adgangskort udlån til:&lt;br /&gt;
    Dato:        Navn:&lt;br /&gt;
    7/2-17       Asger på Fejlfinding 1&lt;br /&gt;
    1/2-17       Jonas HS på Serverteknologi I&lt;br /&gt;
    27/2-17      Avatannguaq på IT3 Svendeprøve holdet&lt;br /&gt;
    27/2-17      Sigurd på IT3 Svendeprøve holdet&lt;br /&gt;
    27/2-17      PeMa&lt;br /&gt;
    18/4-17      Christoffer Stenshøj på systemudvikling og projekt. (hovedforløb 5)&lt;br /&gt;
&lt;br /&gt;
 Udstyr udlånt til:&lt;br /&gt;
    Dato:        Navn:                                         Udstyr:&lt;br /&gt;
    27/2-17      Miki, Svendeprøve holdet                      2 stk. Cisco ASA5505&lt;br /&gt;
    27/2-17      Theis, Svendeprøve holdet                     1 stk. Linksys E3200 router + 1 printer&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Udstyrsregistrering&amp;diff=38461</id>
		<title>Udstyrsregistrering</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Udstyrsregistrering&amp;diff=38461"/>
				<updated>2017-06-28T07:51:47Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Udlån */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{|border=1 ;style=&amp;quot;margin: 0 auto; text-align: center;cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
=== Tabel: HP EliteDesk 800 G1 - PC status oversigt ===&lt;br /&gt;
|- bgcolor=lightgrey&lt;br /&gt;
! PC-nummer: !! Serie-nummer: !!  RAM (GB): !! SSD (GB): !! Netkort: !! Hængelås !! Bemærkninger:&lt;br /&gt;
|-&lt;br /&gt;
! Norm !! Norm !! 24 !! 250 !! 2 !! Ja !! Normal bestykning&lt;br /&gt;
|-&lt;br /&gt;
| C059 || CZC35212XJ || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C060 || CZC35212X8 || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C061 || CZC35212X2 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C062 || CZC35212WS || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C063 || CZC35212X3 || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C064 || CZC40324MP || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C065 || CZC35212XF || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C066 || CZC35212XB || 24 || 128 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C067 || CZC35212WZ || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C068 || CZC35212XH || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C069 || CZC35212WV || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C070 || CZC35212X6 || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C071 || CZC35212WT || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C072 || CZC35212WP || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C073 || CZC35212XG || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C076 || Ukendt || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C077 || Ukendt || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C080 || CZC35212WX || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C081 || CZC35212XD || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C082 || CZC35212X1 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C084 || CZC40324MR || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C086 || CZC40324MN || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C088 || CZC40324M7 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C089 || CZC40324M4 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C090 || Ukendt || 24 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C092 || CZC40324M5 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C093 || CZC40324MK || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C095 || CZC40324M6 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C096 || CZC40324MJ || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| C097 || CZC40324M3 || 24 || 250 || 2 || Ja || Mangler skruer til SSD montage&lt;br /&gt;
|-&lt;br /&gt;
| Ukendt || CZC35212WQ || Ingen || Ingen || Ingen || Ja || Defekt - tænder ikke ved tryk på power-knap. Er ved SKP.&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{|border=1 ;style=&amp;quot;margin: 0 auto; text-align: center;cellpadding=&amp;quot;5&amp;quot; cellspacing=&amp;quot;0&amp;quot;&lt;br /&gt;
|+&lt;br /&gt;
&lt;br /&gt;
=== Tabel: HP EliteDesk 800 G2 - PC status oversigt ===&lt;br /&gt;
|- bgcolor=lightgrey&lt;br /&gt;
! PC-nummer: !! Serie-nummer: !!  RAM (GB): !! SSD (GB): !! Netkort: !! Hængelås !! Bemærkninger:&lt;br /&gt;
|-&lt;br /&gt;
! Norm !! Norm !! 32 !! 250 !! 2 !! Ja !! Normal bestykning&lt;br /&gt;
|-&lt;br /&gt;
| C001 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C002 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C003 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C004 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C005 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C006 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C007 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C008 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C009 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C010 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C011 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C012 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C013 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C014 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C015 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C016 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C017 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C018 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C019 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|-&lt;br /&gt;
| C020 || Ukendt || 32 || 250 || 2 || Ja ||&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Netværks udstyr=&lt;br /&gt;
&lt;br /&gt;
=== Cisco ===&lt;br /&gt;
&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZBFU&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAR8&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAJZ&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAQ6&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029X0G2&lt;br /&gt;
 WS-C2960-24TT-L	FOC1225X4YK&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZB69&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZBWD&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAN8&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZANG&lt;br /&gt;
 WS-C2960-24TT-L	FOC1123Z78P&lt;br /&gt;
 WS-C2960-24TT-L	FOC1123Z78L&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029X20W&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAPT&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZARV&lt;br /&gt;
 WS-C2960-24TT-L	FOC1338V0MY&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAQL&lt;br /&gt;
 WS-C2960-24TT-L	FOC1401Y1BA&lt;br /&gt;
 WS-C3560-24TS-S	CAT1028ZKJ6&lt;br /&gt;
 WS-C3560-24TS-S	CAT1028ZKCX&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZBWW&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZAJT&lt;br /&gt;
 WS-C2960-24TT-L	FOC1132W1EB&lt;br /&gt;
 WS-C3560-48TS-S	CAT1012N6HW&lt;br /&gt;
 WS-C3560-24TS-S	CAT1028ZKCJ&lt;br /&gt;
 WS-C2960-24TT-L	FOC1029ZBXA&lt;br /&gt;
 WS-C3560-24TS-S	FOC1123Z78F&lt;br /&gt;
 WS-C2960-24TT-L	FOC1123Z7DB&lt;br /&gt;
 WS-C2960G-8TC-L	FOC1413W0PA&lt;br /&gt;
 WS-C2960-8TC-L	FOC1330V5UH&lt;br /&gt;
 WS-C2960-8TC-L	FOC1330V5ZB&lt;br /&gt;
 WS-C2960-8TC-L	FOC1213Z58C&lt;br /&gt;
 WS-C2960-8TC-L	FOC1429V4KJ&lt;br /&gt;
&lt;br /&gt;
=== Juniper ===&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=HP pc'er - Beskrivelse=&lt;br /&gt;
*HOT Data har et større antal HP EliteDesk 800 G1 og G2 modeller i Short Form Factor udgaven&lt;br /&gt;
**[http://mars.tekkom.dk/mediawiki/index.php/HP_EliteDesk_800_G1_SSF_-_Workstation G1 maskinerne er beskrevet her]&lt;br /&gt;
**[http://mars.merhot.dk/mediawiki/index.php/HP_EliteDesk_800_G2_SSF_-_Workstation G2 maskinerne er beskrevet her]&lt;br /&gt;
&amp;lt;br/&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=Lenovo=&lt;br /&gt;
*[[Lenovo 7360WTE]]&lt;br /&gt;
&lt;br /&gt;
=Udlån=&lt;br /&gt;
&lt;br /&gt;
==Grundforløb==&lt;br /&gt;
Udlånt 1 stk. Macbook air med oplader Serial No.: C02GKEYSDJWT - Lånt af Henrik Graversen&lt;br /&gt;
&lt;br /&gt;
==Teksnisk Skole Silkeborg==&lt;br /&gt;
*Router 2620 nummer 21&lt;br /&gt;
*Router 2620 nummer 20&lt;br /&gt;
*Catalyst 2950&lt;br /&gt;
==Elever==&lt;br /&gt;
  &lt;br /&gt;
 Gæste adgangskort udlån til:&lt;br /&gt;
    Dato:        Navn:&lt;br /&gt;
    7/2-17       Asger på Fejlfinding 1&lt;br /&gt;
    1/2-17       Jonas HS på Serverteknologi I&lt;br /&gt;
    27/2-17      Avatannguaq på IT3 Svendeprøve holdet&lt;br /&gt;
    27/2-17      Sigurd på IT3 Svendeprøve holdet&lt;br /&gt;
    27/2-17      PeMa&lt;br /&gt;
    18/4-17      Christoffer Stenshøj på systemudvikling og projekt. (hovedforløb 5)&lt;br /&gt;
&lt;br /&gt;
 Udstyr udlånt til:&lt;br /&gt;
    Dato:        Navn:                                         Udstyr:&lt;br /&gt;
    27/2-17      Miki, Svendeprøve holdet                      2 stk. Cisco ASA5505&lt;br /&gt;
    27/2-17      Theis, Svendeprøve holdet                     1 stk. Linksys E3200 router + 1 printer&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Mobile_enheder_2017&amp;diff=38373</id>
		<title>Mobile enheder 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Mobile_enheder_2017&amp;diff=38373"/>
				<updated>2017-06-19T07:40:26Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Opgavebeskrivelse:'''&lt;br /&gt;
&lt;br /&gt;
''Lav en efterligning af cookie-clicker spillet.''&lt;br /&gt;
(orteil.dashnet.org/cookieclicker)&lt;br /&gt;
&lt;br /&gt;
Din virksomhed bar bedt dig om at lave en efterligning af ovenstående spil som de kan bruge til at reklamere for sig selv med i sommerperioden. I stedet for småkager skal temaet dog være softice.&lt;br /&gt;
Spillet skal udgives primært til Android, da de styre ca. 80% af markedet, dog ville det være en fordel hvis spillet også kunne udgives til iOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Selvvalgt opgave:'''&lt;br /&gt;
I aftale med leder af virksomheden (i det her tilfælde mig) må du gerne lave en selvvalgt opgave, så længe at temaet er softice.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Link til Kevin:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YQWhtQ1ExTERFY2c/view?usp=sharing&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Mobile_enheder_2017&amp;diff=38356</id>
		<title>Mobile enheder 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Mobile_enheder_2017&amp;diff=38356"/>
				<updated>2017-06-19T06:14:28Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Opgavebeskrivelse:'''&lt;br /&gt;
&lt;br /&gt;
''Lav en efterligning af cookie-clicker spillet.''&lt;br /&gt;
(orteil.dashnet.org/cookieclicker)&lt;br /&gt;
&lt;br /&gt;
Din virksomhed bar bedt dig om at lave en efterligning af ovenstående spil som de kan bruge til at reklamere for sig selv med i sommerperioden. I stedet for småkager skal temaet dog være softice.&lt;br /&gt;
Spillet skal udgives primært til Android, da de styre ca. 80% af markedet, dog ville det være en fordel hvis spillet også kunne udgives til iOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Selvvalgt opgave:'''&lt;br /&gt;
I aftale med leder af virksomheden (i det her tilfælde mig) må du gerne lave en selvvalgt opgave, så længe at temaet er softice.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Mobile_enheder_2017&amp;diff=38355</id>
		<title>Mobile enheder 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Mobile_enheder_2017&amp;diff=38355"/>
				<updated>2017-06-19T06:13:15Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: Created page with &amp;quot;'''Opgavebeskrivelse:'''  Du skal lave en efterligning af cookie-clicker spillet. (orteil.dashnet.org/cookieclicker)  Din virksomhed bar bedt dig om at lave en efterligning af ov...&amp;quot;&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;'''Opgavebeskrivelse:'''&lt;br /&gt;
&lt;br /&gt;
Du skal lave en efterligning af cookie-clicker spillet.&lt;br /&gt;
(orteil.dashnet.org/cookieclicker)&lt;br /&gt;
&lt;br /&gt;
Din virksomhed bar bedt dig om at lave en efterligning af ovenstående spil som de kan bruge til at reklamere for sig selv med, dog i stedet for småkager skal temaet være softice.&lt;br /&gt;
Spillet skal udgives primært til Android, da de har ca. 80% af markedet, dog ville det være en fordel hvis spillet også kunne udgives til iOS.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Selvvalgt opgave:'''&lt;br /&gt;
&lt;br /&gt;
I aftale med leder af virksomheden (i det her tilfælde mig) må du gerne lave en selvvalgt opgave, så længe at temaet er softice.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38267</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38267"/>
				<updated>2017-06-09T05:53:40Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Torsdag */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Netværksprotokoller:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav 2 programmer hvor det ene program kan sende en besked til det andet, som kan modtage og vise beskeden.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Lav programmerne så de både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
Eksempel på tråde:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Eksempel på serialisering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Tank t1 = new Tank();&lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Tank));&lt;br /&gt;
&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
&lt;br /&gt;
            serializer.Serialize(sWriter, t1);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Vi sender vores XML igennem en netværksforbindelse.&lt;br /&gt;
            //Den bliver nu modtaget:&lt;br /&gt;
&lt;br /&gt;
            Tank enemyTank;&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            enemyTank = (Tank)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Name of enemy tank is: &amp;quot; + enemyTank.playerName);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kryptering og dekryptering==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav en algoritme, der kan kryptere en XML eller JSON string ud fra et brugerdefineret password.&lt;br /&gt;
Filen skal kunne sendes igennem en netværksforbindelse og dekrypteres med samme password hos modtageren.&lt;br /&gt;
&lt;br /&gt;
Hvis passwordet er forkert, skal brugeren få besked om at nøglen var forkert.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Benyt en selvvalgt krypteringsalgoritme til at kryptere og dekryptere en XML/JSON string.&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
Dagens opgave:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YNEJvR3l1Wk9SNkk/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Fredag=&lt;br /&gt;
&lt;br /&gt;
Link til eksamensopgave:&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YbzA5bGd1Z0ctUG8/view?usp=sharing&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38238</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38238"/>
				<updated>2017-06-08T05:52:31Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Kryptering og dekryptering */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Netværksprotokoller:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav 2 programmer hvor det ene program kan sende en besked til det andet, som kan modtage og vise beskeden.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Lav programmerne så de både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
Eksempel på tråde:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Eksempel på serialisering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Tank t1 = new Tank();&lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Tank));&lt;br /&gt;
&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
&lt;br /&gt;
            serializer.Serialize(sWriter, t1);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Vi sender vores XML igennem en netværksforbindelse.&lt;br /&gt;
            //Den bliver nu modtaget:&lt;br /&gt;
&lt;br /&gt;
            Tank enemyTank;&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            enemyTank = (Tank)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Name of enemy tank is: &amp;quot; + enemyTank.playerName);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kryptering og dekryptering==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav en algoritme, der kan kryptere en XML eller JSON string ud fra et brugerdefineret password.&lt;br /&gt;
Filen skal kunne sendes igennem en netværksforbindelse og dekrypteres med samme password hos modtageren.&lt;br /&gt;
&lt;br /&gt;
Hvis passwordet er forkert, skal brugeren få besked om at nøglen var forkert.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Benyt en selvvalgt krypteringsalgoritme til at kryptere og dekryptere en XML/JSON string.&lt;br /&gt;
&lt;br /&gt;
=Torsdag=&lt;br /&gt;
Dagens opgave:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YNEJvR3l1Wk9SNkk/view?usp=sharing&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38181</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38181"/>
				<updated>2017-06-07T10:14:27Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Netværksprotokoller:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav 2 programmer hvor det ene program kan sende en besked til det andet, som kan modtage og vise beskeden.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Lav programmerne så de både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
Eksempel på tråde:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Eksempel på serialisering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Tank t1 = new Tank();&lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Tank));&lt;br /&gt;
&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
&lt;br /&gt;
            serializer.Serialize(sWriter, t1);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Vi sender vores XML igennem en netværksforbindelse.&lt;br /&gt;
            //Den bliver nu modtaget:&lt;br /&gt;
&lt;br /&gt;
            Tank enemyTank;&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            enemyTank = (Tank)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Name of enemy tank is: &amp;quot; + enemyTank.playerName);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Kryptering og dekryptering==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav en algoritme, der kan kryptere en XML eller JSON string ud fra et brugerdefineret password.&lt;br /&gt;
Filen skal kunne sendes igennem en netværksforbindelse og dekrypteres med samme password hos modtageren.&lt;br /&gt;
&lt;br /&gt;
Hvis passwordet er forkert, skal brugeren få besked om at nøglen var forkert.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Benyt en selvvalgt krypteringsalgoritme til at kryptere og dekryptere en XML/JSON string.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38178</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38178"/>
				<updated>2017-06-07T06:44:12Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Netværksprotokoller: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Netværksprotokoller:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav 2 programmer hvor det ene program kan sende en besked til det andet, som kan modtage og vise beskeden.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Lav programmerne så de både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
Eksempel på tråde:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Start&amp;quot;);&lt;br /&gt;
 &lt;br /&gt;
            Thread thread = new Thread(myThread);&lt;br /&gt;
            thread.Start();&lt;br /&gt;
 &lt;br /&gt;
            string input = Console.ReadLine();&lt;br /&gt;
            Console.WriteLine(input);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
 &lt;br /&gt;
        static void myThread()&lt;br /&gt;
        {&lt;br /&gt;
            for (int i = 0; i &amp;lt; 10; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(i);&lt;br /&gt;
            }&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Eksempel på serialisering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Tank t1 = new Tank();&lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Tank));&lt;br /&gt;
&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
&lt;br /&gt;
            serializer.Serialize(sWriter, t1);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Vi sender vores XML igennem en netværksforbindelse.&lt;br /&gt;
            //Den bliver nu modtaget:&lt;br /&gt;
&lt;br /&gt;
            Tank enemyTank;&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            enemyTank = (Tank)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Name of enemy tank is: &amp;quot; + enemyTank.playerName);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38177</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38177"/>
				<updated>2017-06-07T06:41:49Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* XML */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Netværksprotokoller:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav 2 programmer hvor det ene program kan sende en besked til det andet, som kan modtage og vise beskeden.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Lav programmerne så de både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Eksempel på serialisering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Tank t1 = new Tank();&lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Tank));&lt;br /&gt;
&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
&lt;br /&gt;
            serializer.Serialize(sWriter, t1);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Vi sender vores XML igennem en netværksforbindelse.&lt;br /&gt;
            //Den bliver nu modtaget:&lt;br /&gt;
&lt;br /&gt;
            Tank enemyTank;&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            enemyTank = (Tank)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Name of enemy tank is: &amp;quot; + enemyTank.playerName);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38176</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38176"/>
				<updated>2017-06-07T06:39:54Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Netværksprotokoller: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Netværksprotokoller:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav 2 programmer hvor det ene program kan sende en besked til det andet, som kan modtage og vise beskeden.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Lav programmerne så de både kan sende og modtage data til og fra hinanden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==XML==&lt;br /&gt;
&lt;br /&gt;
Eksempel på serialisering:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Tank t1 = new Tank();&lt;br /&gt;
            XmlSerializer serializer = new XmlSerializer(typeof(Tank));&lt;br /&gt;
&lt;br /&gt;
            StringWriter sWriter = new StringWriter();&lt;br /&gt;
&lt;br /&gt;
            serializer.Serialize(sWriter, t1);&lt;br /&gt;
&lt;br /&gt;
            string myXML = sWriter.ToString();&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(myXML);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
            //Vi sender vores XML igennem en netværksforbindelse.&lt;br /&gt;
            //Den bliver nu modtaget:&lt;br /&gt;
&lt;br /&gt;
            Tank enemyTank;&lt;br /&gt;
            StringReader sReader = new StringReader(myXML);&lt;br /&gt;
            enemyTank = (Tank)serializer.Deserialize(sReader);&lt;br /&gt;
&lt;br /&gt;
            Console.WriteLine(&amp;quot;Name of enemy tank is: &amp;quot; + enemyTank.playerName);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38174</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38174"/>
				<updated>2017-06-06T11:04:49Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Netværksprotokoller: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Netværksprotokoller:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Lav 2 programmer hvor det ene program kan sende en besked til det andet, som kan modtage og vise beskeden.&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
Lav programmerne så de både kan sende og modtage data til og fra hinanden.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38173</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38173"/>
				<updated>2017-06-06T11:01:41Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Netværksprotokoller:==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Listener:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            UdpClient client = new UdpClient(11001);&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Any, 11001);&lt;br /&gt;
&lt;br /&gt;
            byte[] recievedBytes = client.Receive(ref endpoint);&lt;br /&gt;
            string recievedMessage = Encoding.ASCII.GetString(recievedBytes);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Beskeden var: &amp;quot; + recievedMessage);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Sender:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            Console.WriteLine(&amp;quot;Type an IP address:&amp;quot;);&lt;br /&gt;
            string ip = Console.ReadLine();&lt;br /&gt;
&lt;br /&gt;
            UdpClient client = new UdpClient();&lt;br /&gt;
            IPEndPoint endpoint = new IPEndPoint(IPAddress.Parse(ip), 11001);&lt;br /&gt;
&lt;br /&gt;
            string message = &amp;quot;Hej!&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            byte[] bytesToSend = Encoding.ASCII.GetBytes(message);&lt;br /&gt;
            client.Send(bytesToSend, bytesToSend.Length, endpoint);&lt;br /&gt;
            Console.WriteLine(&amp;quot;Message sendt!&amp;quot;);&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38170</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38170"/>
				<updated>2017-06-06T06:15:05Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
(hit: du kan benytte Ascii tabellen her: http://www.asciitable.com)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38166</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38166"/>
				<updated>2017-06-06T05:49:24Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YWlhabGxSWTR3T3c/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38165</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38165"/>
				<updated>2017-06-05T17:30:16Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 4:'''&lt;br /&gt;
Udvid din bruteforce algoritme og prøv da at knække koden på følgende fil:&lt;br /&gt;
Filen uploades tirsdag klokken 10.&lt;br /&gt;
&lt;br /&gt;
Koden indeholder 6 ialt bogstaver (samme regler som sidst).&lt;br /&gt;
Benyt hinandens computere til at finde koden.&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38164</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38164"/>
				<updated>2017-06-05T17:27:18Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(kodeordet indeholder stadig kun lowercase bogstaver uden æ,ø og å. Husk også at fjerne blokeringen ved denne fil.)&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38163</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38163"/>
				<updated>2017-06-02T08:50:51Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
''Hjælpekode:''&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            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' };&lt;br /&gt;
&lt;br /&gt;
            int numberOfLetters = letters.Length; //26 LETTERS&lt;br /&gt;
            Console.WriteLine(&amp;quot;Number of letters: {0}&amp;quot;, numberOfLetters);&lt;br /&gt;
&lt;br /&gt;
            for (int i = 0; i &amp;lt; numberOfLetters; i++)&lt;br /&gt;
            {&lt;br /&gt;
                Console.WriteLine(letters[i]);&lt;br /&gt;
            }&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(Husk at fjerne blokeringen igen.)&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38162</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38162"/>
				<updated>2017-06-02T08:26:23Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;};&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(Husk at fjerne blokeringen igen.)&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38161</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38161"/>
				<updated>2017-06-02T08:25:46Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(Husk at fjerne blokeringen igen.)&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38160</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38160"/>
				<updated>2017-06-02T08:25:31Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string[] key = {&amp;quot;aaa&amp;quot;}&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot; + key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(Husk at fjerne blokeringen igen.)&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38159</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38159"/>
				<updated>2017-06-02T08:19:56Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string key = &amp;quot;hot&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe &amp;quot; + key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(Husk at fjerne blokeringen igen.)&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38158</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38158"/>
				<updated>2017-06-02T07:53:21Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Eksempel på application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Fredag=&lt;br /&gt;
==Application domain:==&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
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.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til ApplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string key = &amp;quot;hot&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe&amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Koden var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Koden var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(Husk at fjerne blokeringen igen.)&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	<entry>
		<id>http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38157</id>
		<title>Programmering III Juni 2017</title>
		<link rel="alternate" type="text/html" href="http://mars.merhot.dk/w/index.php?title=Programmering_III_Juni_2017&amp;diff=38157"/>
				<updated>2017-06-02T07:33:17Z</updated>
		
		<summary type="html">&lt;p&gt;Makn: /* Eksempel på application domain: */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;=Eksempel på application domain:=&lt;br /&gt;
&lt;br /&gt;
'''Opgave 1:'''&lt;br /&gt;
Opret 2 applikationer. Applikation1 skal være en simpel HelloWorld. Applikation2 skal være et applikationDomain der henter HelloWorld programmet ind, og eksekvere koden.&lt;br /&gt;
&lt;br /&gt;
Benyt følgende kode til APplikationDomainet:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain appDomain = AppDomain.CreateDomain(&amp;quot;New Domain&amp;quot;);&lt;br /&gt;
            appDomain.ExecuteAssembly(&amp;quot;HelloWorld.exe&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Opgave 2:'''&lt;br /&gt;
&lt;br /&gt;
Hent denne fil, og lav et program der bruteforcer kodeordet. kodeordetindeholder kun lowerCase bogstaver, som ikke indeholder æ, ø eller å (hint: kodeordet er &amp;quot;hot&amp;quot;):&lt;br /&gt;
&lt;br /&gt;
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 &amp;quot;fjern blokering&amp;quot;.&lt;br /&gt;
&lt;br /&gt;
[[File:MadsFjernBlokering.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YT0phWlRzMGU5NFU/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
Eksempel på kode:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;Csharp&amp;quot;&amp;gt;&lt;br /&gt;
        static void Main(string[] args)&lt;br /&gt;
        {&lt;br /&gt;
            AppDomain encryptedFile = AppDomain.CreateDomain(&amp;quot;New Appdomain&amp;quot;);&lt;br /&gt;
            string key = &amp;quot;hot&amp;quot;;&lt;br /&gt;
&lt;br /&gt;
            int success = encryptedFile.ExecuteAssembly(&amp;quot;EncryptedFile.exe&amp;quot;, key);&lt;br /&gt;
&lt;br /&gt;
            if(sucess == 1)&lt;br /&gt;
            {&lt;br /&gt;
                 Console.Writeline(&amp;quot;Passwordet var korrekt&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
            else&lt;br /&gt;
            {&lt;br /&gt;
                 Console.WriteLine(&amp;quot;Passwordet var forkert&amp;quot;);&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
            Console.ReadKey();&lt;br /&gt;
        }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
'''Opgave 3:'''&lt;br /&gt;
&lt;br /&gt;
Lav en bruteforcing algoritme der prøver alle tænkelige kombinationer af passwords. Prøv da at knække koden på følgende fil:&lt;br /&gt;
https://drive.google.com/file/d/0B5oDizcmFQ1YUEpaa3V3OVJiVDQ/view?usp=sharing&lt;br /&gt;
&lt;br /&gt;
(Husk at fjerne blokeringen igen.)&lt;/div&gt;</summary>
		<author><name>Makn</name></author>	</entry>

	</feed>