<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/">
	<channel>
		<title><![CDATA[Shellsec - .NET]]></title>
		<link>https://www.shellsec.pw/</link>
		<description><![CDATA[Shellsec - https://www.shellsec.pw]]></description>
		<pubDate>Sun, 17 May 2026 06:22:55 +0000</pubDate>
		<generator>MyBB</generator>
		<item>
			<title><![CDATA[Nogen som kan hjælpe med at lære C#?]]></title>
			<link>https://www.shellsec.pw/traad-nogen-som-kan-hjaelpe-med-at-laere-c</link>
			<pubDate>Sun, 21 Jun 2020 15:33:57 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-nogen-som-kan-hjaelpe-med-at-laere-c</guid>
			<description><![CDATA[Hejsa derude,<br />
Kan nogen hjælpe med at lære C# programmering?<br />
jeg har været igang i noget tid, men synes ikke rigtig jeg har lært så meget, jeg har det oftes med at glemme tingene osv<br />
har i evt. tips og tricks eller lign?]]></description>
			<content:encoded><![CDATA[Hejsa derude,<br />
Kan nogen hjælpe med at lære C# programmering?<br />
jeg har været igang i noget tid, men synes ikke rigtig jeg har lært så meget, jeg har det oftes med at glemme tingene osv<br />
har i evt. tips og tricks eller lign?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Simpelt program med point tæller med kollesion]]></title>
			<link>https://www.shellsec.pw/traad-simpelt-program-med-point-taeller-med</link>
			<pubDate>Wed, 15 Nov 2017 21:33:58 +0100</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-simpelt-program-med-point-taeller-med</guid>
			<description><![CDATA[Hej Shellsec, <br />
<br />
Jeg skal prøve at skrive et simpelt program, hvor programmet skal smide random pictureboxe ned, når man enten har "fanget" den picturebox som er droppet ned eller hvis man ikke når og fange den og den timeout'er. <br />
<br />
Jeg kan ikke få min point-tæller til kun at tælle point, samt hvordan jeg få den til at smide random pictureboxe ned, når pictureboxen enten er blevet fanget eller timeout'et. <br />
<br />
En som kan hjælpe mig?<br />
<br />
Min kode ser således ud: <br />
<br />
namespace Animation<br />
{<br />
    public partial class Form1 : Form<br />
    {<br />
        Point p1 = new Point();<br />
        Point p2 = new Point();<br />
        int bredde;<br />
        int højde;<br />
        int score;<br />
        public Form1()<br />
        {<br />
            InitializeComponent();<br />
            p1.X = pictureBox1.Location.X;<br />
            p1.Y = pictureBox1.Location.Y;<br />
            p2.X = pictureBox2.Location.X;<br />
            p2.Y = pictureBox2.Location.Y;<br />
            højde = ClientSize.Height;<br />
            bredde = ClientSize.Width;<br />
        }<br />
        Boolean max = true;<br />
        void kollesion()<br />
        {<br />
            <br />
            if (pictureBox1.Bounds.IntersectsWith(pictureBox2.Bounds)) <br />
            {<br />
                score++;<br />
                label1.Text = Convert.ToString(score);<br />
                max = true;<br />
            }<br />
            <br />
        }<br />
        private void Form1_KeyDown(object sender, KeyEventArgs e)<br />
        {<br />
            if (e.KeyData == Keys.W &amp;&amp; p1.Y &gt; 0)<br />
                p1.Y -= 3;<br />
                <br />
            if (e.KeyData == Keys.D &amp;&amp; p1.X + pictureBox1.Width &lt; bredde)<br />
                p1.X +=3;<br />
               <br />
            if (e.KeyData == Keys.A &amp;&amp; p1.X &gt; 0)<br />
                p1.X -=3;<br />
               <br />
            if (e.KeyData == Keys.S &amp;&amp; p1.Y + pictureBox1.Height &lt; højde)<br />
                p1.Y +=3;<br />
            pictureBox1.Location = p1;<br />
           <br />
            if (e.KeyData == Keys.W &amp;&amp; p2.Y &gt; 0)<br />
               <br />
            if (e.KeyData == Keys.D &amp;&amp; p2.X + pictureBox2.Width &lt; bredde)<br />
               <br />
            if (e.KeyData == Keys.A &amp;&amp; p2.X &gt; 0)<br />
               <br />
            if (e.KeyData == Keys.S &amp;&amp; p2.Y + pictureBox2.Height &lt; højde)<br />
            <br />
            pictureBox2.Location = p2; <br />
        }<br />
        private void timer1_Tick(object sender, EventArgs e)<br />
        {<br />
            kollesion();<br />
            p2.Y +=5;<br />
            pictureBox2.Location = p2;<br />
           <br />
            <br />
        }<br />
        private void buttonStart_Click(object sender, EventArgs e)<br />
        {<br />
            timer1.Enabled = true;<br />
        }<br />
        private void buttonStop_Click(object sender, EventArgs e)<br />
        {<br />
            timer1.Enabled = false;<br />
        }<br />
    }<br />
}]]></description>
			<content:encoded><![CDATA[Hej Shellsec, <br />
<br />
Jeg skal prøve at skrive et simpelt program, hvor programmet skal smide random pictureboxe ned, når man enten har "fanget" den picturebox som er droppet ned eller hvis man ikke når og fange den og den timeout'er. <br />
<br />
Jeg kan ikke få min point-tæller til kun at tælle point, samt hvordan jeg få den til at smide random pictureboxe ned, når pictureboxen enten er blevet fanget eller timeout'et. <br />
<br />
En som kan hjælpe mig?<br />
<br />
Min kode ser således ud: <br />
<br />
namespace Animation<br />
{<br />
    public partial class Form1 : Form<br />
    {<br />
        Point p1 = new Point();<br />
        Point p2 = new Point();<br />
        int bredde;<br />
        int højde;<br />
        int score;<br />
        public Form1()<br />
        {<br />
            InitializeComponent();<br />
            p1.X = pictureBox1.Location.X;<br />
            p1.Y = pictureBox1.Location.Y;<br />
            p2.X = pictureBox2.Location.X;<br />
            p2.Y = pictureBox2.Location.Y;<br />
            højde = ClientSize.Height;<br />
            bredde = ClientSize.Width;<br />
        }<br />
        Boolean max = true;<br />
        void kollesion()<br />
        {<br />
            <br />
            if (pictureBox1.Bounds.IntersectsWith(pictureBox2.Bounds)) <br />
            {<br />
                score++;<br />
                label1.Text = Convert.ToString(score);<br />
                max = true;<br />
            }<br />
            <br />
        }<br />
        private void Form1_KeyDown(object sender, KeyEventArgs e)<br />
        {<br />
            if (e.KeyData == Keys.W &amp;&amp; p1.Y &gt; 0)<br />
                p1.Y -= 3;<br />
                <br />
            if (e.KeyData == Keys.D &amp;&amp; p1.X + pictureBox1.Width &lt; bredde)<br />
                p1.X +=3;<br />
               <br />
            if (e.KeyData == Keys.A &amp;&amp; p1.X &gt; 0)<br />
                p1.X -=3;<br />
               <br />
            if (e.KeyData == Keys.S &amp;&amp; p1.Y + pictureBox1.Height &lt; højde)<br />
                p1.Y +=3;<br />
            pictureBox1.Location = p1;<br />
           <br />
            if (e.KeyData == Keys.W &amp;&amp; p2.Y &gt; 0)<br />
               <br />
            if (e.KeyData == Keys.D &amp;&amp; p2.X + pictureBox2.Width &lt; bredde)<br />
               <br />
            if (e.KeyData == Keys.A &amp;&amp; p2.X &gt; 0)<br />
               <br />
            if (e.KeyData == Keys.S &amp;&amp; p2.Y + pictureBox2.Height &lt; højde)<br />
            <br />
            pictureBox2.Location = p2; <br />
        }<br />
        private void timer1_Tick(object sender, EventArgs e)<br />
        {<br />
            kollesion();<br />
            p2.Y +=5;<br />
            pictureBox2.Location = p2;<br />
           <br />
            <br />
        }<br />
        private void buttonStart_Click(object sender, EventArgs e)<br />
        {<br />
            timer1.Enabled = true;<br />
        }<br />
        private void buttonStop_Click(object sender, EventArgs e)<br />
        {<br />
            timer1.Enabled = false;<br />
        }<br />
    }<br />
}]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Sporing igennem browser]]></title>
			<link>https://www.shellsec.pw/traad-sporing-igennem-browser</link>
			<pubDate>Fri, 28 Oct 2016 04:17:22 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-sporing-igennem-browser</guid>
			<description><![CDATA[Jeg havde udviklet et program i asp.net hvor jeg igennem browser fik personen's lokation via browser. Men hvorfor er disse lokationer ikke præcise? de rammer ved siden af med 15 meter eller i nogle tilfælde for mobiler, som havde et simkort, der tilhørte et selskab, som ikke var dansk. Så viste de, at vedkommende befandt sig i danmark? Programmet var under studie, hvor jeg skulle finde ud af om personen der brugte siden var fra danmark via han lokation før end han måtte bruge min side. En slags geo-lock]]></description>
			<content:encoded><![CDATA[Jeg havde udviklet et program i asp.net hvor jeg igennem browser fik personen's lokation via browser. Men hvorfor er disse lokationer ikke præcise? de rammer ved siden af med 15 meter eller i nogle tilfælde for mobiler, som havde et simkort, der tilhørte et selskab, som ikke var dansk. Så viste de, at vedkommende befandt sig i danmark? Programmet var under studie, hvor jeg skulle finde ud af om personen der brugte siden var fra danmark via han lokation før end han måtte bruge min side. En slags geo-lock]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Forskellen på MVC, webforms, ado osv]]></title>
			<link>https://www.shellsec.pw/traad-forskellen-paa-mvc-webforms-ado-osv</link>
			<pubDate>Fri, 28 Oct 2016 04:12:58 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-forskellen-paa-mvc-webforms-ado-osv</guid>
			<description><![CDATA[Jeg har programmeret i noget tid i C#, men jeg kender stadig ikke hvad forskellen er på mvc og webforms og hvad ado er. F.eks blev jeg spurgt om jeg kunne programmere i noget bestemt i c# og jeg nikkede nej til det og senere hen fandt jeg ude af, at det kunne jeg godt og havde gjort det i noget tid. Mit spørgsmål er, hvor kan man læse om alle disse forskellige definitioner og typer?<br />
<br />
mit andet spørgsmål er, hvad er forskellen på mvc og webforms og hvad er bedst?]]></description>
			<content:encoded><![CDATA[Jeg har programmeret i noget tid i C#, men jeg kender stadig ikke hvad forskellen er på mvc og webforms og hvad ado er. F.eks blev jeg spurgt om jeg kunne programmere i noget bestemt i c# og jeg nikkede nej til det og senere hen fandt jeg ude af, at det kunne jeg godt og havde gjort det i noget tid. Mit spørgsmål er, hvor kan man læse om alle disse forskellige definitioner og typer?<br />
<br />
mit andet spørgsmål er, hvad er forskellen på mvc og webforms og hvad er bedst?]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Hjælp med C#?]]></title>
			<link>https://www.shellsec.pw/traad-hjaelp-med-c</link>
			<pubDate>Sat, 26 Mar 2016 16:30:41 +0100</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-hjaelp-med-c</guid>
			<description><![CDATA[Hejsa,<br />
Er ved at lære lidt C#, og er stødt på et problem, så håber I kan hjælpe.<br />
Jeg har 2 WinForms, hhv. Form1 og Form2.<br />
Form1 er min "main" form, men ved loading af Form1 har jeg sat ShowDialog ved Form2, da den skal dukke op først og man skal trykke på en knap, før Form2 lukker og Form1 åbner. Problemet er nu, hvordan får jeg Form1 til at lukke, når jeg vælger at lukke Form2 ved bl.a. at trykke på X/close/Alt+F4? Hvis jeg lukker Form2, så må Form1 ikke åbne.<br />
<hr class="mycode_hr" />
Nevermind, har fundet en løsning. :)]]></description>
			<content:encoded><![CDATA[Hejsa,<br />
Er ved at lære lidt C#, og er stødt på et problem, så håber I kan hjælpe.<br />
Jeg har 2 WinForms, hhv. Form1 og Form2.<br />
Form1 er min "main" form, men ved loading af Form1 har jeg sat ShowDialog ved Form2, da den skal dukke op først og man skal trykke på en knap, før Form2 lukker og Form1 åbner. Problemet er nu, hvordan får jeg Form1 til at lukke, når jeg vælger at lukke Form2 ved bl.a. at trykke på X/close/Alt+F4? Hvis jeg lukker Form2, så må Form1 ikke åbne.<br />
<hr class="mycode_hr" />
Nevermind, har fundet en løsning. :)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[C# Beginner - Yellow book 2015]]></title>
			<link>https://www.shellsec.pw/traad-c-beginner-yellow-book-2015</link>
			<pubDate>Mon, 21 Sep 2015 21:26:58 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-c-beginner-yellow-book-2015</guid>
			<description><![CDATA[Den kan hentes her og er en hel ny udgave fra starten af September 2015 og erstatter den tidligere udgave med en gummi and på. <br />
<a href="http://www.robmiles.com/c-yellow-book" target="_blank" rel="noopener" class="mycode_url">http://www.robmiles.com/c-yellow-book</a><br />
<br />
Samtidig kan det anbefales at benytte sig af <a href="http://www.codingbat.com" target="_blank" rel="noopener" class="mycode_url">www.codingbat.com</a> til at udføre logiske opgaver i java da syntaksen i if else statements og logiske operatorer stort set er ens. <br />
<br />
Held &amp; lykke.]]></description>
			<content:encoded><![CDATA[Den kan hentes her og er en hel ny udgave fra starten af September 2015 og erstatter den tidligere udgave med en gummi and på. <br />
<a href="http://www.robmiles.com/c-yellow-book" target="_blank" rel="noopener" class="mycode_url">http://www.robmiles.com/c-yellow-book</a><br />
<br />
Samtidig kan det anbefales at benytte sig af <a href="http://www.codingbat.com" target="_blank" rel="noopener" class="mycode_url">www.codingbat.com</a> til at udføre logiske opgaver i java da syntaksen i if else statements og logiske operatorer stort set er ens. <br />
<br />
Held &amp; lykke.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[AES-128 | Library understøtter Rijandel 128 bit chipers.]]></title>
			<link>https://www.shellsec.pw/traad-aes-128-library-understoetter-rijandel</link>
			<pubDate>Thu, 06 Aug 2015 00:21:54 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-aes-128-library-understoetter-rijandel</guid>
			<description><![CDATA[Dette er et custom bibliotek(library) som understøtter Rijandel 128 bit kryptering ciphers. Skrevet i C#<br />
Dette bibliotek er en enkel men enestående krypteringsmetode der sikrer bedre end andre krypteringer. Dette bibliotek understøtter file og string kryptering.<br />
<br />
Husk at give mig credits. Open-source for fællesskabet <img src="https://www.shellsec.pw/images/smilies/facebook/cool.png" alt="Cool" title="Cool" class="smilie smilie_80" /><br />
<br />
<pre class="line-numbers"><code class="language-php">/*<br />
 * Copyright &copy; 2015 Sc0rp10n (Formerly Kokaine)<br />
 * Dedikeret til ShellSec <br />
*/<br />
using System;<br />
using System.Collections;<br />
using System.Collections.Generic;<br />
using System.Data;<br />
using System.Diagnostics;<br />
using System.ComponentModel;<br />
using System.IO;<br />
using System.Security.Cryptography;<br />
using System.Text;<br />
using System.IO.Compression;<br />
public class koko<br />
    {<br />
        public koko()<br />
        {<br />
            this.InitializeComponent();<br />
            if ((this.PassPhrase == null))<br />
            {<br />
                this.PassPhrase = "Z29sZGZpc2ggYm93bA==";<br />
            }<br />
            if ((this.SaltValue == null))<br />
            {<br />
                this.SaltValue = "ZGlhbW9uZCByaW5n";<br />
            }<br />
            this.HashType = DCHashTypes._SHA1;<br />
            if ((this._FileDecryptExtension == null))<br />
            {<br />
                this._FileDecryptExtension = "dec";<br />
            }<br />
            if ((this._FileEncryptExtension == null))<br />
            {<br />
                this._FileEncryptExtension = "enc";<br />
            }<br />
            if ((this._initVector == null))<br />
            {<br />
                this._initVector = "@1B2c3D4e5F6g7H8";<br />
            }<br />
            this._passPhraseStrength = 2;<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Decrypt files using Rijandel-128 bit managed encryption<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The filename&lt;/param&gt;<br />
        /// &lt;remarks&gt;Decrypts files&lt;/remarks&gt;<br />
        public void DecryptFile(string inFile)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._decrypt, null, null);<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Decrypt files using Rijandel-128 bit managed encryption<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The filename&lt;/param&gt;<br />
        /// &lt;param name="outFileName"&gt;Filename to output as (Only in local directory)&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void DecryptFile(string inFile, string outFileName)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._decrypt, outFileName, null);<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Decrypt files using Rijandel-128 bit managed encryption<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The filename&lt;/param&gt;<br />
        /// &lt;param name="outFileName"&gt;Filename to output as&lt;/param&gt;<br />
        /// &lt;param name="outDirectory"&gt;Directory to output file to&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void DecryptFile(string inFile, string outFileName, string outDirectory)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._decrypt, outFileName, outDirectory);<br />
        }<br />
		public byte[] CompressBytes(byte[] bytes)<br />
		{<br />
			 using (MemoryStream memory = new MemoryStream())<br />
            {<br />
                using (GZipStream gzip = new GZipStream(memory, CompressionMode.Compress, true))<br />
                {<br />
                    gzip.Write(bytes, 0, bytes.Length);<br />
                }<br />
                return memory.ToArray();<br />
            }<br />
		}<br />
		public byte[] DecompressBytes(byte[] compressed)<br />
		{<br />
 using (MemoryStream memory = new MemoryStream())<br />
            {<br />
                using (GZipStream gzip = new GZipStream(memory, CompressionMode.Decompress, true))<br />
                {<br />
                    gzip.Write(compressed, 0, compressed.Length);<br />
                }<br />
                return memory.ToArray();<br />
            }<br />
		}<br />
        public byte[] DecryptBytes(byte[] encryptedBytes)<br />
        {<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            byte[] buffer = encryptedBytes;<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            ICryptoTransform transform = managed.CreateDecryptor(rgbKey, bytes);<br />
            MemoryStream stream = new MemoryStream(buffer);<br />
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read);<br />
            byte[] buffer5 = new byte[buffer.Length];<br />
            int count = stream2.Read(buffer5, 0, buffer5.Length);<br />
            stream.Close();<br />
            stream2.Close();<br />
            return buffer5;<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Decrypts encrypted text using Rijandel-128 bit managed encryption<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="encryptedText"&gt;The text to decrypt&lt;/param&gt;<br />
        /// &lt;returns&gt;Decrypted text&lt;/returns&gt;<br />
        /// &lt;remarks&gt;Decrypts text&lt;/remarks&gt;<br />
        public string DecryptString(string encryptedText)<br />
        {<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            byte[] buffer = Convert.FromBase64String(encryptedText);<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            ICryptoTransform transform = managed.CreateDecryptor(rgbKey, bytes);<br />
            MemoryStream stream = new MemoryStream(buffer);<br />
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read);<br />
            byte[] buffer5 = new byte[buffer.Length];<br />
            int count = stream2.Read(buffer5, 0, buffer5.Length);<br />
            stream.Close();<br />
            stream2.Close();<br />
            return Encoding.UTF8.GetString(buffer5, 0, count);<br />
        }<br />
<br />
        private void DoTransformFile(string inFile, TransformType aType, string newFileName, string alternativeDirectory)<br />
        {<br />
            ICryptoTransform transform = null;<br />
            FileInfo info = new FileInfo(inFile);<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            if ((aType == TransformType._encrypt))<br />
            {<br />
                transform = managed.CreateEncryptor(rgbKey, bytes);<br />
            }<br />
            else<br />
            {<br />
                transform = managed.CreateDecryptor(rgbKey, bytes);<br />
            }<br />
            string path = "";<br />
            if ((newFileName == null))<br />
            {<br />
                if ((aType == TransformType._encrypt))<br />
                {<br />
                    path = (inFile.Substring(0, inFile.LastIndexOf(".")) + "." + this.FileEncryptExtension);<br />
                }<br />
                else<br />
                {<br />
                    path = (inFile.Substring(0, inFile.LastIndexOf(".")) + "." + this.FileDecryptExtension);<br />
                }<br />
            }<br />
            if (((newFileName != null)))<br />
            {<br />
                if (((alternativeDirectory != null)))<br />
                {<br />
                    DirectoryInfo info2 = new DirectoryInfo(alternativeDirectory);<br />
                    path = (alternativeDirectory + newFileName);<br />
                }<br />
                else<br />
                {<br />
                    FileInfo info3 = new FileInfo(inFile);<br />
                    path = (info3.DirectoryName + "\\" + newFileName);<br />
                    if ((path.LastIndexOf(".") &lt; 1))<br />
                    {<br />
                        if ((aType == TransformType._encrypt))<br />
                        {<br />
                            path = (path + "." + this.FileEncryptExtension);<br />
                        }<br />
                        else<br />
                        {<br />
                            path = (path + "." + this.FileDecryptExtension);<br />
                        }<br />
                    }<br />
                }<br />
            }<br />
            FileStream stream = new FileStream(path, FileMode.Create);<br />
            using (CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write))<br />
            {<br />
                int count = 0;<br />
                int num3 = 0;<br />
                int num4 = (managed.BlockSize / 8);<br />
                byte[] buffer = new byte[num4];<br />
                int num5 = 0;<br />
                using (FileStream stream3 = new FileStream(inFile, FileMode.Open))<br />
                {<br />
                    do<br />
                    {<br />
                        count = stream3.Read(buffer, 0, num4);<br />
                        num3 = (num3 + count);<br />
                        stream2.Write(buffer, 0, count);<br />
                        num5 = (num5 + num4);<br />
                    } while ((count &gt; 0));<br />
                    stream2.FlushFinalBlock();<br />
                    stream2.Close();<br />
                    stream3.Close();<br />
                }<br />
                stream.Close();<br />
            }<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Encrypts file<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The file path of original file&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void EncryptFile(string inFile)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._encrypt, null, null);<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Encrypts file<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The file path of the original file&lt;/param&gt;<br />
        /// &lt;param name="outFileName"&gt;Filename to output as&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void EncryptFile(string inFile, string outFileName)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._encrypt, outFileName, null);<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Encrypts file<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The file path of the original file&lt;/param&gt;<br />
        /// &lt;param name="outFileName"&gt;Filename to output as&lt;/param&gt;<br />
        /// &lt;param name="outDirectory"&gt;Directory to output file&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void EncryptFile(string inFile, string outFileName, string outDirectory)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._encrypt, outFileName, outDirectory);<br />
        }<br />
        public byte[] EncryptBytes(byte[] bytearray)<br />
        {<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            byte[] buffer = bytearray;<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            ICryptoTransform transform = managed.CreateEncryptor(rgbKey, bytes);<br />
            MemoryStream stream = new MemoryStream();<br />
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write);<br />
            stream2.Write(buffer, 0, buffer.Length);<br />
            stream2.FlushFinalBlock();<br />
            byte[] inArray = stream.ToArray();<br />
            stream.Close();<br />
            stream2.Close();<br />
            return inArray;<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Encrypts a string using Rijandel-128 bit secure encryption. Make sure to set the variable "Passphrase"<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="plainText"&gt;The text to encrypt.&lt;/param&gt;<br />
        /// &lt;returns&gt;The encrypted text&lt;/returns&gt;<br />
        /// &lt;remarks&gt;Encrypts a string&lt;/remarks&gt;<br />
        [Description("Encrypt a string using your preferred encryption settings (pass phrase, salt value..)")]<br />
        public string EncryptString(string plainText)<br />
        {<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            byte[] buffer = Encoding.UTF8.GetBytes(plainText);<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            ICryptoTransform transform = managed.CreateEncryptor(rgbKey, bytes);<br />
            MemoryStream stream = new MemoryStream();<br />
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write);<br />
            stream2.Write(buffer, 0, buffer.Length);<br />
            stream2.FlushFinalBlock();<br />
            byte[] inArray = stream.ToArray();<br />
            stream.Close();<br />
            stream2.Close();<br />
            return Convert.ToBase64String(inArray);<br />
        }<br />
<br />
        private void InitializeComponent()<br />
        {<br />
        }<br />
<br />
<br />
        // Properties<br />
        [Category("File Defaults"), Description("The default decrypted file extension")]<br />
        public string FileDecryptExtension<br />
        {<br />
            get { return this._FileDecryptExtension; }<br />
            set<br />
            {<br />
                if ((value.Length &lt; 3))<br />
                {<br />
                    this._FileDecryptExtension = "dec";<br />
                }<br />
                else<br />
                {<br />
                    this._FileDecryptExtension = value;<br />
                }<br />
            }<br />
        }<br />
<br />
        [Category("File Defaults"), Description("The default encrypted file extension")]<br />
        public string FileEncryptExtension<br />
        {<br />
            get { return this._FileEncryptExtension; }<br />
            set<br />
            {<br />
                if ((value.Length &lt; 3))<br />
                {<br />
                    this._FileEncryptExtension = "enc";<br />
                }<br />
                else<br />
                {<br />
                    this._FileEncryptExtension = value;<br />
                }<br />
            }<br />
        }<br />
<br />
        [Category("Encryption Options"), Description("The type of HASH you want to use to aid RijndaelManaged transformations")]<br />
        public DCHashTypes HashType<br />
        {<br />
            get { return this._DCHashTypes; }<br />
            set { this._DCHashTypes = value; }<br />
        }<br />
<br />
        [Category("Encryption Options"), Description("The initialization vector to use (must be 16 chars)")]<br />
        public string InitVector<br />
        {<br />
            get { return this._initVector; }<br />
            set<br />
            {<br />
                if ((value.Length != 0x10))<br />
                {<br />
                    this._initVector = "@1B2c3D4e5F6g7H8";<br />
                }<br />
                else<br />
                {<br />
                    this._initVector = value;<br />
                }<br />
            }<br />
        }<br />
<br />
        [Description("The secret pass phrase to use for encryption and decryption"), Category("Encryption Options")]<br />
        public string PassPhrase<br />
        {<br />
            get { return this._PassPhrase; }<br />
            set { this._PassPhrase = value; }<br />
        }<br />
<br />
        [Category("Encryption Options"), Description("The Pass Phrase strength (5 high, 1 low)")]<br />
        public int PassPhraseStrength<br />
        {<br />
            get { return this._passPhraseStrength; }<br />
            set<br />
            {<br />
                if ((value &gt; 5))<br />
                {<br />
                    this._passPhraseStrength = 2;<br />
                }<br />
                else<br />
                {<br />
                    this._passPhraseStrength = value;<br />
                }<br />
            }<br />
        }<br />
<br />
        [Category("Encryption Options"), Description("The salt value used to foil hackers attempting to crack the encryption")]<br />
        public string SaltValue<br />
        {<br />
            get { return this._SaltValue; }<br />
            set { this._SaltValue = value; }<br />
        }<br />
<br />
<br />
        // Fields<br />
        private DCHashTypes _DCHashTypes;<br />
        private string _FileDecryptExtension;<br />
        private string _FileEncryptExtension;<br />
        private string _initVector;<br />
        private string _PassPhrase;<br />
        private int _passPhraseStrength;<br />
        private string _SaltValue;<br />
<br />
<br />
        // Nested Types<br />
        public enum DCHashTypes<br />
        {<br />
            // Fields<br />
            _SHA1 = 0,<br />
            _SHA256 = 1,<br />
            _SHA384 = 2,<br />
            _SHA512 = 3<br />
        }<br />
<br />
        private enum TransformType<br />
        {<br />
            // Fields<br />
            _decrypt = 1,<br />
            _encrypt = 0<br />
        }<br />
}<br />
</code></pre>]]></description>
			<content:encoded><![CDATA[Dette er et custom bibliotek(library) som understøtter Rijandel 128 bit kryptering ciphers. Skrevet i C#<br />
Dette bibliotek er en enkel men enestående krypteringsmetode der sikrer bedre end andre krypteringer. Dette bibliotek understøtter file og string kryptering.<br />
<br />
Husk at give mig credits. Open-source for fællesskabet <img src="https://www.shellsec.pw/images/smilies/facebook/cool.png" alt="Cool" title="Cool" class="smilie smilie_80" /><br />
<br />
<pre class="line-numbers"><code class="language-php">/*<br />
 * Copyright &copy; 2015 Sc0rp10n (Formerly Kokaine)<br />
 * Dedikeret til ShellSec <br />
*/<br />
using System;<br />
using System.Collections;<br />
using System.Collections.Generic;<br />
using System.Data;<br />
using System.Diagnostics;<br />
using System.ComponentModel;<br />
using System.IO;<br />
using System.Security.Cryptography;<br />
using System.Text;<br />
using System.IO.Compression;<br />
public class koko<br />
    {<br />
        public koko()<br />
        {<br />
            this.InitializeComponent();<br />
            if ((this.PassPhrase == null))<br />
            {<br />
                this.PassPhrase = "Z29sZGZpc2ggYm93bA==";<br />
            }<br />
            if ((this.SaltValue == null))<br />
            {<br />
                this.SaltValue = "ZGlhbW9uZCByaW5n";<br />
            }<br />
            this.HashType = DCHashTypes._SHA1;<br />
            if ((this._FileDecryptExtension == null))<br />
            {<br />
                this._FileDecryptExtension = "dec";<br />
            }<br />
            if ((this._FileEncryptExtension == null))<br />
            {<br />
                this._FileEncryptExtension = "enc";<br />
            }<br />
            if ((this._initVector == null))<br />
            {<br />
                this._initVector = "@1B2c3D4e5F6g7H8";<br />
            }<br />
            this._passPhraseStrength = 2;<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Decrypt files using Rijandel-128 bit managed encryption<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The filename&lt;/param&gt;<br />
        /// &lt;remarks&gt;Decrypts files&lt;/remarks&gt;<br />
        public void DecryptFile(string inFile)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._decrypt, null, null);<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Decrypt files using Rijandel-128 bit managed encryption<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The filename&lt;/param&gt;<br />
        /// &lt;param name="outFileName"&gt;Filename to output as (Only in local directory)&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void DecryptFile(string inFile, string outFileName)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._decrypt, outFileName, null);<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Decrypt files using Rijandel-128 bit managed encryption<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The filename&lt;/param&gt;<br />
        /// &lt;param name="outFileName"&gt;Filename to output as&lt;/param&gt;<br />
        /// &lt;param name="outDirectory"&gt;Directory to output file to&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void DecryptFile(string inFile, string outFileName, string outDirectory)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._decrypt, outFileName, outDirectory);<br />
        }<br />
		public byte[] CompressBytes(byte[] bytes)<br />
		{<br />
			 using (MemoryStream memory = new MemoryStream())<br />
            {<br />
                using (GZipStream gzip = new GZipStream(memory, CompressionMode.Compress, true))<br />
                {<br />
                    gzip.Write(bytes, 0, bytes.Length);<br />
                }<br />
                return memory.ToArray();<br />
            }<br />
		}<br />
		public byte[] DecompressBytes(byte[] compressed)<br />
		{<br />
 using (MemoryStream memory = new MemoryStream())<br />
            {<br />
                using (GZipStream gzip = new GZipStream(memory, CompressionMode.Decompress, true))<br />
                {<br />
                    gzip.Write(compressed, 0, compressed.Length);<br />
                }<br />
                return memory.ToArray();<br />
            }<br />
		}<br />
        public byte[] DecryptBytes(byte[] encryptedBytes)<br />
        {<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            byte[] buffer = encryptedBytes;<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            ICryptoTransform transform = managed.CreateDecryptor(rgbKey, bytes);<br />
            MemoryStream stream = new MemoryStream(buffer);<br />
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read);<br />
            byte[] buffer5 = new byte[buffer.Length];<br />
            int count = stream2.Read(buffer5, 0, buffer5.Length);<br />
            stream.Close();<br />
            stream2.Close();<br />
            return buffer5;<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Decrypts encrypted text using Rijandel-128 bit managed encryption<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="encryptedText"&gt;The text to decrypt&lt;/param&gt;<br />
        /// &lt;returns&gt;Decrypted text&lt;/returns&gt;<br />
        /// &lt;remarks&gt;Decrypts text&lt;/remarks&gt;<br />
        public string DecryptString(string encryptedText)<br />
        {<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            byte[] buffer = Convert.FromBase64String(encryptedText);<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            ICryptoTransform transform = managed.CreateDecryptor(rgbKey, bytes);<br />
            MemoryStream stream = new MemoryStream(buffer);<br />
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Read);<br />
            byte[] buffer5 = new byte[buffer.Length];<br />
            int count = stream2.Read(buffer5, 0, buffer5.Length);<br />
            stream.Close();<br />
            stream2.Close();<br />
            return Encoding.UTF8.GetString(buffer5, 0, count);<br />
        }<br />
<br />
        private void DoTransformFile(string inFile, TransformType aType, string newFileName, string alternativeDirectory)<br />
        {<br />
            ICryptoTransform transform = null;<br />
            FileInfo info = new FileInfo(inFile);<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            if ((aType == TransformType._encrypt))<br />
            {<br />
                transform = managed.CreateEncryptor(rgbKey, bytes);<br />
            }<br />
            else<br />
            {<br />
                transform = managed.CreateDecryptor(rgbKey, bytes);<br />
            }<br />
            string path = "";<br />
            if ((newFileName == null))<br />
            {<br />
                if ((aType == TransformType._encrypt))<br />
                {<br />
                    path = (inFile.Substring(0, inFile.LastIndexOf(".")) + "." + this.FileEncryptExtension);<br />
                }<br />
                else<br />
                {<br />
                    path = (inFile.Substring(0, inFile.LastIndexOf(".")) + "." + this.FileDecryptExtension);<br />
                }<br />
            }<br />
            if (((newFileName != null)))<br />
            {<br />
                if (((alternativeDirectory != null)))<br />
                {<br />
                    DirectoryInfo info2 = new DirectoryInfo(alternativeDirectory);<br />
                    path = (alternativeDirectory + newFileName);<br />
                }<br />
                else<br />
                {<br />
                    FileInfo info3 = new FileInfo(inFile);<br />
                    path = (info3.DirectoryName + "\\" + newFileName);<br />
                    if ((path.LastIndexOf(".") &lt; 1))<br />
                    {<br />
                        if ((aType == TransformType._encrypt))<br />
                        {<br />
                            path = (path + "." + this.FileEncryptExtension);<br />
                        }<br />
                        else<br />
                        {<br />
                            path = (path + "." + this.FileDecryptExtension);<br />
                        }<br />
                    }<br />
                }<br />
            }<br />
            FileStream stream = new FileStream(path, FileMode.Create);<br />
            using (CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write))<br />
            {<br />
                int count = 0;<br />
                int num3 = 0;<br />
                int num4 = (managed.BlockSize / 8);<br />
                byte[] buffer = new byte[num4];<br />
                int num5 = 0;<br />
                using (FileStream stream3 = new FileStream(inFile, FileMode.Open))<br />
                {<br />
                    do<br />
                    {<br />
                        count = stream3.Read(buffer, 0, num4);<br />
                        num3 = (num3 + count);<br />
                        stream2.Write(buffer, 0, count);<br />
                        num5 = (num5 + num4);<br />
                    } while ((count &gt; 0));<br />
                    stream2.FlushFinalBlock();<br />
                    stream2.Close();<br />
                    stream3.Close();<br />
                }<br />
                stream.Close();<br />
            }<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Encrypts file<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The file path of original file&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void EncryptFile(string inFile)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._encrypt, null, null);<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Encrypts file<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The file path of the original file&lt;/param&gt;<br />
        /// &lt;param name="outFileName"&gt;Filename to output as&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void EncryptFile(string inFile, string outFileName)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._encrypt, outFileName, null);<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Encrypts file<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="inFile"&gt;The file path of the original file&lt;/param&gt;<br />
        /// &lt;param name="outFileName"&gt;Filename to output as&lt;/param&gt;<br />
        /// &lt;param name="outDirectory"&gt;Directory to output file&lt;/param&gt;<br />
        /// &lt;remarks&gt;&lt;/remarks&gt;<br />
        public void EncryptFile(string inFile, string outFileName, string outDirectory)<br />
        {<br />
            this.DoTransformFile(inFile, TransformType._encrypt, outFileName, outDirectory);<br />
        }<br />
        public byte[] EncryptBytes(byte[] bytearray)<br />
        {<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            byte[] buffer = bytearray;<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            ICryptoTransform transform = managed.CreateEncryptor(rgbKey, bytes);<br />
            MemoryStream stream = new MemoryStream();<br />
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write);<br />
            stream2.Write(buffer, 0, buffer.Length);<br />
            stream2.FlushFinalBlock();<br />
            byte[] inArray = stream.ToArray();<br />
            stream.Close();<br />
            stream2.Close();<br />
            return inArray;<br />
        }<br />
        /// &lt;summary&gt;<br />
        /// Encrypts a string using Rijandel-128 bit secure encryption. Make sure to set the variable "Passphrase"<br />
        /// &lt;/summary&gt;<br />
        /// &lt;param name="plainText"&gt;The text to encrypt.&lt;/param&gt;<br />
        /// &lt;returns&gt;The encrypted text&lt;/returns&gt;<br />
        /// &lt;remarks&gt;Encrypts a string&lt;/remarks&gt;<br />
        [Description("Encrypt a string using your preferred encryption settings (pass phrase, salt value..)")]<br />
        public string EncryptString(string plainText)<br />
        {<br />
            string initVector = this.InitVector;<br />
            int num = 0x100;<br />
            byte[] bytes = Encoding.ASCII.GetBytes(initVector);<br />
            byte[] rgbSalt = Encoding.ASCII.GetBytes(this.SaltValue);<br />
            byte[] buffer = Encoding.UTF8.GetBytes(plainText);<br />
            string strHashName = "SHA1";<br />
            if ((this.HashType == DCHashTypes._SHA1))<br />
            {<br />
                strHashName = "SHA1";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA256))<br />
            {<br />
                strHashName = "SHA256";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA384))<br />
            {<br />
                strHashName = "SHA384";<br />
            }<br />
            if ((this.HashType == DCHashTypes._SHA512))<br />
            {<br />
                strHashName = "SHA512";<br />
            }<br />
            byte[] rgbKey = new PasswordDeriveBytes(this.PassPhrase, rgbSalt, strHashName, this.PassPhraseStrength).GetBytes((num / 8));<br />
            RijndaelManaged managed = new RijndaelManaged();<br />
            managed.Mode = CipherMode.CBC;<br />
            ICryptoTransform transform = managed.CreateEncryptor(rgbKey, bytes);<br />
            MemoryStream stream = new MemoryStream();<br />
            CryptoStream stream2 = new CryptoStream(stream, transform, CryptoStreamMode.Write);<br />
            stream2.Write(buffer, 0, buffer.Length);<br />
            stream2.FlushFinalBlock();<br />
            byte[] inArray = stream.ToArray();<br />
            stream.Close();<br />
            stream2.Close();<br />
            return Convert.ToBase64String(inArray);<br />
        }<br />
<br />
        private void InitializeComponent()<br />
        {<br />
        }<br />
<br />
<br />
        // Properties<br />
        [Category("File Defaults"), Description("The default decrypted file extension")]<br />
        public string FileDecryptExtension<br />
        {<br />
            get { return this._FileDecryptExtension; }<br />
            set<br />
            {<br />
                if ((value.Length &lt; 3))<br />
                {<br />
                    this._FileDecryptExtension = "dec";<br />
                }<br />
                else<br />
                {<br />
                    this._FileDecryptExtension = value;<br />
                }<br />
            }<br />
        }<br />
<br />
        [Category("File Defaults"), Description("The default encrypted file extension")]<br />
        public string FileEncryptExtension<br />
        {<br />
            get { return this._FileEncryptExtension; }<br />
            set<br />
            {<br />
                if ((value.Length &lt; 3))<br />
                {<br />
                    this._FileEncryptExtension = "enc";<br />
                }<br />
                else<br />
                {<br />
                    this._FileEncryptExtension = value;<br />
                }<br />
            }<br />
        }<br />
<br />
        [Category("Encryption Options"), Description("The type of HASH you want to use to aid RijndaelManaged transformations")]<br />
        public DCHashTypes HashType<br />
        {<br />
            get { return this._DCHashTypes; }<br />
            set { this._DCHashTypes = value; }<br />
        }<br />
<br />
        [Category("Encryption Options"), Description("The initialization vector to use (must be 16 chars)")]<br />
        public string InitVector<br />
        {<br />
            get { return this._initVector; }<br />
            set<br />
            {<br />
                if ((value.Length != 0x10))<br />
                {<br />
                    this._initVector = "@1B2c3D4e5F6g7H8";<br />
                }<br />
                else<br />
                {<br />
                    this._initVector = value;<br />
                }<br />
            }<br />
        }<br />
<br />
        [Description("The secret pass phrase to use for encryption and decryption"), Category("Encryption Options")]<br />
        public string PassPhrase<br />
        {<br />
            get { return this._PassPhrase; }<br />
            set { this._PassPhrase = value; }<br />
        }<br />
<br />
        [Category("Encryption Options"), Description("The Pass Phrase strength (5 high, 1 low)")]<br />
        public int PassPhraseStrength<br />
        {<br />
            get { return this._passPhraseStrength; }<br />
            set<br />
            {<br />
                if ((value &gt; 5))<br />
                {<br />
                    this._passPhraseStrength = 2;<br />
                }<br />
                else<br />
                {<br />
                    this._passPhraseStrength = value;<br />
                }<br />
            }<br />
        }<br />
<br />
        [Category("Encryption Options"), Description("The salt value used to foil hackers attempting to crack the encryption")]<br />
        public string SaltValue<br />
        {<br />
            get { return this._SaltValue; }<br />
            set { this._SaltValue = value; }<br />
        }<br />
<br />
<br />
        // Fields<br />
        private DCHashTypes _DCHashTypes;<br />
        private string _FileDecryptExtension;<br />
        private string _FileEncryptExtension;<br />
        private string _initVector;<br />
        private string _PassPhrase;<br />
        private int _passPhraseStrength;<br />
        private string _SaltValue;<br />
<br />
<br />
        // Nested Types<br />
        public enum DCHashTypes<br />
        {<br />
            // Fields<br />
            _SHA1 = 0,<br />
            _SHA256 = 1,<br />
            _SHA384 = 2,<br />
            _SHA512 = 3<br />
        }<br />
<br />
        private enum TransformType<br />
        {<br />
            // Fields<br />
            _decrypt = 1,<br />
            _encrypt = 0<br />
        }<br />
}<br />
</code></pre>]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Unit test af federated security]]></title>
			<link>https://www.shellsec.pw/traad-unit-test-af-federated-security</link>
			<pubDate>Fri, 14 Feb 2014 10:09:29 +0100</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-unit-test-af-federated-security</guid>
			<description><![CDATA[Hej,<br />
<br />
Okay, har fået til opgave at lave unit test af vores egen implementation af federated login.<br />
<br />
Vi bruger <a href="http://thinktecture.github.io/Thinktecture.IdentityServer.v2/" target="_blank" rel="noopener" class="mycode_url">thinktecture identityserver 2</a> som STS, både live og linkedin som identity providers, og STS'en retunere JWT tokens. Det hele er lavet i ASP.NET mvc 4<br />
<br />
Alt virker - det er jo dejligt!<br />
<br />
Mit spørgsmål er, hvordan kan jeg dokumentere via unit test, at et login virker? Har søgt nettet tyndt, men synes ikke rigtigt at kunne finde noget, der hjælper mig på vej.<br />
<br />
Nogen der ved noget om dette? <img src="https://www.shellsec.pw/images/smilies/facebook/smile.png" alt="Smile" title="Smile" class="smilie smilie_79" />]]></description>
			<content:encoded><![CDATA[Hej,<br />
<br />
Okay, har fået til opgave at lave unit test af vores egen implementation af federated login.<br />
<br />
Vi bruger <a href="http://thinktecture.github.io/Thinktecture.IdentityServer.v2/" target="_blank" rel="noopener" class="mycode_url">thinktecture identityserver 2</a> som STS, både live og linkedin som identity providers, og STS'en retunere JWT tokens. Det hele er lavet i ASP.NET mvc 4<br />
<br />
Alt virker - det er jo dejligt!<br />
<br />
Mit spørgsmål er, hvordan kan jeg dokumentere via unit test, at et login virker? Har søgt nettet tyndt, men synes ikke rigtigt at kunne finde noget, der hjælper mig på vej.<br />
<br />
Nogen der ved noget om dette? <img src="https://www.shellsec.pw/images/smilies/facebook/smile.png" alt="Smile" title="Smile" class="smilie smilie_79" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[WCF Movie  Service med PHP og Android som klienter:]]></title>
			<link>https://www.shellsec.pw/traad-wcf-movie-service-med-php-og-android</link>
			<pubDate>Wed, 07 Aug 2013 23:58:21 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-wcf-movie-service-med-php-og-android</guid>
			<description><![CDATA[Halløj Shellsec.<br />
<br />
Jeg deler her et lille projekt jeg har arbejdet på i den sidste periode af min ferie.<br />
<br />
I min lejlighed kører jeg en server som hoster en masse af mit medie underholdning(film, masser af serier etc) og da enten jeg selv eller andre vil vide hvilke film jeg ligger inde med er det træls at oprette en VNC forbindelse eller tjekker på et Windows share hele tiden og problematisk når man er på farten.<br />
<br />
Derfor har jeg lavet en WCF Webservice som indsamler informationer på enhver film jeg har liggende og gør det muligt at hente ned til andre klienter såsom :<br />
<ol type="1" class="mycode_list"><li>PHP<br />
</li>
<li>Android/Java<br />
</li>
<li>iOS<br />
</li>
<li>osv<br />
</li>
</ol>
<br />
Jeg vil ikke blot dele min WebService og klienterne her men også kommentere og skrive lidt teori. Jeg er på 5.Semester datamatiker så koden er skrevet ud fra et mere "proff"/skole minded øjesyn.<br />
<br />
<br />
(10/8/2013/)Så er applikationen og selvfølgelig koden.<br />
I ZIP filen ligger der:<ul class="mycode_list"><li>Executable &amp; DLL Filer<br />
</li>
<li>Koden<br />
</li>
<li>Stub filer(billeder &amp; nfo'er)<br />
</li>
</ul>
Jeg har ikke lige kendt en side jeg kan skaffe exe filer for jer, ellers må i selv lige gøre det eller recompile.<br />
Hvis du starter programmet så kan du i din browser navigere til : "http://localhost:47895/MovieService/getAllMovies" og så skal den gerne returnere 5 film i JSON format.<br />
<br />
<a href="http://imgur.com/zuLnen5" target="_blank" rel="noopener" class="mycode_url"><img src="http://i.imgur.com/zuLnen5s.png" alt="[Billede: zuLnen5s.png]" class="mycode_img" /></a><br />
<a href="http://imgur.com/5gCBvCN" target="_blank" rel="noopener" class="mycode_url"><img src="http://i.imgur.com/5gCBvCNs.png" alt="[Billede: 5gCBvCNs.png]" class="mycode_img" /></a><br />
<br />
<br />
Nu til noget mere til teori.<br />
<br />
<span style="color: #FF0000;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Tre lags arkitektur</span></span><br />
Når vi koder så arbejder man ofte ud fra den forudsætning at en del af ens produkt skal kunne ændres/opgraderes uden at det ødelægger resten af produktet går i stykker imens. <br />
Derfor er jeg blevet undervist i at kode i en 3 lags arkitektur.  Denne arkitektur ser således ud:<br />
<br />
<img src="http://i.imgur.com/osH4FAV.png" alt="[Billede: osH4FAV.png]" class="mycode_img" /><br />
<br />
En vigtig del at forstå at når det deles op sådan her så kan der kun laves funktions kald den vej som pilene viser. Altså UI lag må kalde BLL funktioner og BLL funktioner må kalde DAL funktioner og ellers intet andet. Selvfølgelig må der kaldes indenfor det samme lag.<br />
Det at man har gjort lagene Abstrakte gør at man kan skifte koden i et lavere lag uden at det påvirker det ”kaldende” lags kode. <br />
<br />
Navnene på de 3 lag udleder lidt hvad hvert lag gør men jeg vil alligevel forklare dem:<ul class="mycode_list"><li>BE laget<br />
<br />
Laget her repræsenterer alle de slags objekter med arbejder i applikationen. <br />
I mit kode er det f.eks. NFO og Movie objekter.  Det er altså de ting som produktet primært omhandler. <br />
Alle klasserne her står primært mest for bare at have variabler og funktioner der returnerer deres værdi <br />
Eksempler:<br />
<ol type="1" class="mycode_list"><li>Bil(Type,årgang,motor,plader)<br />
</li>
<li>GPS(Længdegrad,Breddegrad)<br />
</li>
<li>Besked(Modtager,Afsender,Tekst,Tidspunkt, GPS koordinat)<br />
</li>
<li>Sang(Artist,Titel,Album,Længde)<br />
</li>
</ol>
Disse klasser kan derfor bruges i alle 3 lag<br />
<br />
</li>
<li>Præsentations laget.<br />
Dette lag står for at styre brugerens interaktion med applikationen de anvender. <br />
Det her kode som opdaterer UI, handler keyboard presses, knap klip og lignende er.  Altså alt kode som har noget med brugeren at gøre.<br />
<br />
</li>
<li>Logik laget<br />
Her ligger alt logikken i ens program, hvis man arbejder med GPS koordinater så ligger Haversine udregningerne her.<br />
Shortest Path First, sorternings algoritmer men også funktionalitet som at skubbe CD drev ud, skifte en sang eller behandle et objekt bør ligge her.<br />
<br />
<br />
</li>
<li>Data Adgang Laget <br />
Her ligger koden som står for at gemme ens BE objekter eller andet data et persistent sted såsom:<br />
<ol type="1" class="mycode_list"><li>SQL servere<br />
</li>
<li>XML filer<br />
</li>
<li>Webservere<br />
</li>
<li>Andre steder.<br />
</li>
</ol>
Funktionerne i disse klasser står kun for at gemme eller skaffe den data som man har adgang til.  Hvis det er et GPS koordinat så læses det f.eks. fra en XML fil som:<br />
<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>&lt;GPS&gt;<br />
&lt;Længde&gt;333.00&lt;/Længde&gt;<br />
&lt;Bredde&gt;321.00&lt;/Bredde&gt;<br />
&lt;/GPS&gt;</code></div></div>hvilket så vil returnere et GPS objekt med disse to variabler sat og det kan så anvendes til Logik laget til en haversine udregning hvis resultat så kan vises i UI via præsenstations laget.<br />
</li>
</ul>
<br />
Min egen erfaring:<br />
Jeg har nu kodet på denne måde i 2 år og jeg synes det er en rigtig god måde at kode på. <br />
Både den måde man organiserer det hele på og så det at det giver langt større frihed når man vil opgradere eller skifte noget ud.<br />
Jeg kan kun anbefale det<br />
Hvis der mangler noget eller du har spørgsmål så skriv løs :)<br />
<br />
Senere:WCF.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.shellsec.pw/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=12" target="_blank" title="">MovieServer Projekt.zip</a> (Størrelse: 945,73 KB / Downloads: 5)
<!-- end: postbit_attachments_attachment -->]]></description>
			<content:encoded><![CDATA[Halløj Shellsec.<br />
<br />
Jeg deler her et lille projekt jeg har arbejdet på i den sidste periode af min ferie.<br />
<br />
I min lejlighed kører jeg en server som hoster en masse af mit medie underholdning(film, masser af serier etc) og da enten jeg selv eller andre vil vide hvilke film jeg ligger inde med er det træls at oprette en VNC forbindelse eller tjekker på et Windows share hele tiden og problematisk når man er på farten.<br />
<br />
Derfor har jeg lavet en WCF Webservice som indsamler informationer på enhver film jeg har liggende og gør det muligt at hente ned til andre klienter såsom :<br />
<ol type="1" class="mycode_list"><li>PHP<br />
</li>
<li>Android/Java<br />
</li>
<li>iOS<br />
</li>
<li>osv<br />
</li>
</ol>
<br />
Jeg vil ikke blot dele min WebService og klienterne her men også kommentere og skrive lidt teori. Jeg er på 5.Semester datamatiker så koden er skrevet ud fra et mere "proff"/skole minded øjesyn.<br />
<br />
<br />
(10/8/2013/)Så er applikationen og selvfølgelig koden.<br />
I ZIP filen ligger der:<ul class="mycode_list"><li>Executable &amp; DLL Filer<br />
</li>
<li>Koden<br />
</li>
<li>Stub filer(billeder &amp; nfo'er)<br />
</li>
</ul>
Jeg har ikke lige kendt en side jeg kan skaffe exe filer for jer, ellers må i selv lige gøre det eller recompile.<br />
Hvis du starter programmet så kan du i din browser navigere til : "http://localhost:47895/MovieService/getAllMovies" og så skal den gerne returnere 5 film i JSON format.<br />
<br />
<a href="http://imgur.com/zuLnen5" target="_blank" rel="noopener" class="mycode_url"><img src="http://i.imgur.com/zuLnen5s.png" alt="[Billede: zuLnen5s.png]" class="mycode_img" /></a><br />
<a href="http://imgur.com/5gCBvCN" target="_blank" rel="noopener" class="mycode_url"><img src="http://i.imgur.com/5gCBvCNs.png" alt="[Billede: 5gCBvCNs.png]" class="mycode_img" /></a><br />
<br />
<br />
Nu til noget mere til teori.<br />
<br />
<span style="color: #FF0000;" class="mycode_color"><span style="font-size: large;" class="mycode_size">Tre lags arkitektur</span></span><br />
Når vi koder så arbejder man ofte ud fra den forudsætning at en del af ens produkt skal kunne ændres/opgraderes uden at det ødelægger resten af produktet går i stykker imens. <br />
Derfor er jeg blevet undervist i at kode i en 3 lags arkitektur.  Denne arkitektur ser således ud:<br />
<br />
<img src="http://i.imgur.com/osH4FAV.png" alt="[Billede: osH4FAV.png]" class="mycode_img" /><br />
<br />
En vigtig del at forstå at når det deles op sådan her så kan der kun laves funktions kald den vej som pilene viser. Altså UI lag må kalde BLL funktioner og BLL funktioner må kalde DAL funktioner og ellers intet andet. Selvfølgelig må der kaldes indenfor det samme lag.<br />
Det at man har gjort lagene Abstrakte gør at man kan skifte koden i et lavere lag uden at det påvirker det ”kaldende” lags kode. <br />
<br />
Navnene på de 3 lag udleder lidt hvad hvert lag gør men jeg vil alligevel forklare dem:<ul class="mycode_list"><li>BE laget<br />
<br />
Laget her repræsenterer alle de slags objekter med arbejder i applikationen. <br />
I mit kode er det f.eks. NFO og Movie objekter.  Det er altså de ting som produktet primært omhandler. <br />
Alle klasserne her står primært mest for bare at have variabler og funktioner der returnerer deres værdi <br />
Eksempler:<br />
<ol type="1" class="mycode_list"><li>Bil(Type,årgang,motor,plader)<br />
</li>
<li>GPS(Længdegrad,Breddegrad)<br />
</li>
<li>Besked(Modtager,Afsender,Tekst,Tidspunkt, GPS koordinat)<br />
</li>
<li>Sang(Artist,Titel,Album,Længde)<br />
</li>
</ol>
Disse klasser kan derfor bruges i alle 3 lag<br />
<br />
</li>
<li>Præsentations laget.<br />
Dette lag står for at styre brugerens interaktion med applikationen de anvender. <br />
Det her kode som opdaterer UI, handler keyboard presses, knap klip og lignende er.  Altså alt kode som har noget med brugeren at gøre.<br />
<br />
</li>
<li>Logik laget<br />
Her ligger alt logikken i ens program, hvis man arbejder med GPS koordinater så ligger Haversine udregningerne her.<br />
Shortest Path First, sorternings algoritmer men også funktionalitet som at skubbe CD drev ud, skifte en sang eller behandle et objekt bør ligge her.<br />
<br />
<br />
</li>
<li>Data Adgang Laget <br />
Her ligger koden som står for at gemme ens BE objekter eller andet data et persistent sted såsom:<br />
<ol type="1" class="mycode_list"><li>SQL servere<br />
</li>
<li>XML filer<br />
</li>
<li>Webservere<br />
</li>
<li>Andre steder.<br />
</li>
</ol>
Funktionerne i disse klasser står kun for at gemme eller skaffe den data som man har adgang til.  Hvis det er et GPS koordinat så læses det f.eks. fra en XML fil som:<br />
<br />
<div class="codeblock"><div class="title">Kode:</div><div class="body" dir="ltr"><code>&lt;GPS&gt;<br />
&lt;Længde&gt;333.00&lt;/Længde&gt;<br />
&lt;Bredde&gt;321.00&lt;/Bredde&gt;<br />
&lt;/GPS&gt;</code></div></div>hvilket så vil returnere et GPS objekt med disse to variabler sat og det kan så anvendes til Logik laget til en haversine udregning hvis resultat så kan vises i UI via præsenstations laget.<br />
</li>
</ul>
<br />
Min egen erfaring:<br />
Jeg har nu kodet på denne måde i 2 år og jeg synes det er en rigtig god måde at kode på. <br />
Både den måde man organiserer det hele på og så det at det giver langt større frihed når man vil opgradere eller skifte noget ud.<br />
Jeg kan kun anbefale det<br />
Hvis der mangler noget eller du har spørgsmål så skriv løs :)<br />
<br />
Senere:WCF.<br /><!-- start: postbit_attachments_attachment -->
<br /><!-- start: attachment_icon -->
<img src="https://www.shellsec.pw/images/attachtypes/zip.gif" title="ZIP File" border="0" alt=".zip" />
<!-- end: attachment_icon -->&nbsp;&nbsp;<a href="attachment.php?aid=12" target="_blank" title="">MovieServer Projekt.zip</a> (Størrelse: 945,73 KB / Downloads: 5)
<!-- end: postbit_attachments_attachment -->]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[TV Crap Filter]]></title>
			<link>https://www.shellsec.pw/traad-tv-crap-filter</link>
			<pubDate>Sun, 23 Jun 2013 11:28:58 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-tv-crap-filter</guid>
			<description><![CDATA[<img src="http://i.imgur.com/nFNcCx3.png" alt="[Billede: nFNcCx3.png]" class="mycode_img" /><br />
<br />
Basic progress. Den kan alarmere mig når mine valgte shows går i luften, via en computergenereret stemme.<br />
<br />
Den kan også hente et detaljeret data overblik om de TV-shows man vælger.<br />
<br />
Jeg udgiver nok dette til danskerne når det er helt færdigt. Det gør livet en del nemmere.]]></description>
			<content:encoded><![CDATA[<img src="http://i.imgur.com/nFNcCx3.png" alt="[Billede: nFNcCx3.png]" class="mycode_img" /><br />
<br />
Basic progress. Den kan alarmere mig når mine valgte shows går i luften, via en computergenereret stemme.<br />
<br />
Den kan også hente et detaljeret data overblik om de TV-shows man vælger.<br />
<br />
Jeg udgiver nok dette til danskerne når det er helt færdigt. Det gør livet en del nemmere.]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Extension Spoofer.]]></title>
			<link>https://www.shellsec.pw/traad-extension-spoofer</link>
			<pubDate>Mon, 03 Jun 2013 21:59:54 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-extension-spoofer</guid>
			<description><![CDATA[Tænkte bare lige at jeg ville lægge den herud. Til dem der nu skal bruge sådan en bassemand.<br />
<br />
<a href="http://www.mediafire.com/?bp229sou9omdlzu" target="_blank" rel="noopener" class="mycode_url">http://www.mediafire.com/?bp229sou9omdlzu</a><br />
<br />
<br />
<a href="https://www.virustotal.com/da/file/01e31974fc37fc50b06c9a6a51aee860d95b1d91f99de5a7458725fcc84d04c9/analysis/1370289484/" target="_blank" rel="noopener" class="mycode_url">https://www.virustotal.com/da/file/01e31...370289484/</a><br />
<br />
<img src="http://i.imgur.com/LruAWVE.png" alt="[Billede: LruAWVE.png]" class="mycode_img" />]]></description>
			<content:encoded><![CDATA[Tænkte bare lige at jeg ville lægge den herud. Til dem der nu skal bruge sådan en bassemand.<br />
<br />
<a href="http://www.mediafire.com/?bp229sou9omdlzu" target="_blank" rel="noopener" class="mycode_url">http://www.mediafire.com/?bp229sou9omdlzu</a><br />
<br />
<br />
<a href="https://www.virustotal.com/da/file/01e31974fc37fc50b06c9a6a51aee860d95b1d91f99de5a7458725fcc84d04c9/analysis/1370289484/" target="_blank" rel="noopener" class="mycode_url">https://www.virustotal.com/da/file/01e31...370289484/</a><br />
<br />
<img src="http://i.imgur.com/LruAWVE.png" alt="[Billede: LruAWVE.png]" class="mycode_img" />]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[.NET Reflector]]></title>
			<link>https://www.shellsec.pw/traad-net-reflector</link>
			<pubDate>Mon, 20 May 2013 14:22:57 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-net-reflector</guid>
			<description><![CDATA[Til dem der ikke allerede kender til programmet:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">.NET Reflector makes all .NET code readable</span><br />
<br />
.NET Reflector is an extremely fast debugging and decompilation tool that lets you look inside code, even when you don't have the source. Track your data flow through third party libraries and frameworks like ASP.NET, Silverlight, and Enterprise library. <br />
<br />
.NET Reflector lets you debug third party code in visual studio as if it's your own. Discover whether bugs are in your code or in third party components, and make development on platforms like SharePoint and Umbraco easier. Generate PDBs, attach breakpoints, and debug live to see how your application behaves in real time.</blockquote>
<br />
Er du i tvivl om noget .NET kode er fyldt med bagdøre? Så kom igang med at decompile det.<br />
<br />
Programmet koster mønt, men fås i en gratis 14-dags trial (hint: uendelig trial == gratis program).<br />
<br />
<a href="http://www.red-gate.com/dynamic/products/dotnet-development/reflector/download" target="_blank" rel="noopener" class="mycode_url">DOWNLOAD</a> (bare udfyd en masse crap i navn og mail)]]></description>
			<content:encoded><![CDATA[Til dem der ikke allerede kender til programmet:<br />
<blockquote class="mycode_quote"><cite>Citer:</cite><span style="font-weight: bold;" class="mycode_b">.NET Reflector makes all .NET code readable</span><br />
<br />
.NET Reflector is an extremely fast debugging and decompilation tool that lets you look inside code, even when you don't have the source. Track your data flow through third party libraries and frameworks like ASP.NET, Silverlight, and Enterprise library. <br />
<br />
.NET Reflector lets you debug third party code in visual studio as if it's your own. Discover whether bugs are in your code or in third party components, and make development on platforms like SharePoint and Umbraco easier. Generate PDBs, attach breakpoints, and debug live to see how your application behaves in real time.</blockquote>
<br />
Er du i tvivl om noget .NET kode er fyldt med bagdøre? Så kom igang med at decompile det.<br />
<br />
Programmet koster mønt, men fås i en gratis 14-dags trial (hint: uendelig trial == gratis program).<br />
<br />
<a href="http://www.red-gate.com/dynamic/products/dotnet-development/reflector/download" target="_blank" rel="noopener" class="mycode_url">DOWNLOAD</a> (bare udfyd en masse crap i navn og mail)]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[Fake Keygens - Nogle der kan bruge?]]></title>
			<link>https://www.shellsec.pw/traad-fake-keygens-nogle-der-kan-bruge</link>
			<pubDate>Fri, 10 May 2013 17:13:48 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-fake-keygens-nogle-der-kan-bruge</guid>
			<description><![CDATA[Har et par forskelligt designede sources osv til fake keygens som jeg for det meste har brugt til PPD/CPA.<br />
Nogle der er interesrese i dem?<br />
<br />
Så ville jeg nemlig smide dem op!]]></description>
			<content:encoded><![CDATA[Har et par forskelligt designede sources osv til fake keygens som jeg for det meste har brugt til PPD/CPA.<br />
Nogle der er interesrese i dem?<br />
<br />
Så ville jeg nemlig smide dem op!]]></content:encoded>
		</item>
		<item>
			<title><![CDATA[[E-book] Grundlæggende programmering i C#]]></title>
			<link>https://www.shellsec.pw/traad-e-book-grundlaeggende-programmering</link>
			<pubDate>Mon, 15 Apr 2013 15:17:26 +0200</pubDate>
			<guid isPermaLink="false">https://www.shellsec.pw/traad-e-book-grundlaeggende-programmering</guid>
			<description><![CDATA[Hey Guys<br />
<br />
Fandt lige denne gamle e-book frem fra gemmerne, mener at jeg købte den tilbage i Nordichacks tiden, så helt ny er den ikke, men derfor bør den stadig kunne bruges hvis nogle herinde vil lære C#. Personligt synes jeg at det er lækkert at den er på dansk, så man kan forstå 110 % af det der står i den.<br />
<br />
Jeg ved ikke om det her er den helt rigtige sektion at poste den i, men synes ikke at den passede ind i nogle af de andre, så here you go;<br />
<br />
<a href="https://www.dropbox.com/s/tt9ytcqsyhj2h1i/Grundlaeggende_programmering_i_C.pdf" target="_blank" rel="noopener" class="mycode_url">https://www.dropbox.com/s/tt9ytcqsyhj2h1...ng_i_C.pdf</a><br />
<br />
Enjoy! :B):]]></description>
			<content:encoded><![CDATA[Hey Guys<br />
<br />
Fandt lige denne gamle e-book frem fra gemmerne, mener at jeg købte den tilbage i Nordichacks tiden, så helt ny er den ikke, men derfor bør den stadig kunne bruges hvis nogle herinde vil lære C#. Personligt synes jeg at det er lækkert at den er på dansk, så man kan forstå 110 % af det der står i den.<br />
<br />
Jeg ved ikke om det her er den helt rigtige sektion at poste den i, men synes ikke at den passede ind i nogle af de andre, så here you go;<br />
<br />
<a href="https://www.dropbox.com/s/tt9ytcqsyhj2h1i/Grundlaeggende_programmering_i_C.pdf" target="_blank" rel="noopener" class="mycode_url">https://www.dropbox.com/s/tt9ytcqsyhj2h1...ng_i_C.pdf</a><br />
<br />
Enjoy! :B):]]></content:encoded>
		</item>
	</channel>
</rss>