[C#]Kleines CrackMe – Source gibts Später

CrackMe

CrackMe

Sorry, für den kleinen Leerlauf, den es hier gab ;-)

Aaaber: Diese Zeit, bzw. ein Teil dieser Zeit, habe ich genutzt um ein CrackMe zu schreiben, dass ihr versuchen sollt zu lösen!

Ziel ist es, das ganze per Reversen zu lösen – nicht per Bruteforce! Deswegen müsst ihr mir auch zwei gültige Keys schicken.

Was habt ihr nun davon? Ihr werdet hier Namentlich genannt und erntet somit den größt möglichen Respekt[!] ;-)

Zusätzlich werde ich immer mal wieder Tipps posten, wenns keine Lösungen gibt ;-)

Okay, also viel Spaß & vielen Dank an euch! Ich hoffe jemand schickt eine Lösung ein ;-) Der Beste weg dies zu tun ist, eine Mail an mail@lenwo.de zu schicken!

Bis dann und lG,

Lenwo


Lenwo hat folgende Dateien angehängt:

[C#]Kleines CrackMe


, , , , , , , , , ,

Keine Kommentare

[C#] 3 nützliche Code Snippets

3 Code Snippets die ich immer wieder gebrauchen kann:

 public static string Left(string param, int length)
        {
            //we start at 0 since we want to get the characters starting from the
            //left and with the specified lenght and assign it to a variable
            string result = param.Substring(0, length);
            //return the result of the operation
            return result;
        }

Returnt die ersten N Zeichen von der Linken Seite des Strings

        public static string Right(string param, int length)
        {
            //start at the index based on the lenght of the sting minus
            //the specified lenght and assign it a variable
            string result = param.Substring(param.Length - length, length);
            //return the result of the operation
            return result;
        }

Returnt die ersten N Zeichen von der Rechten Seite des Strings

        public static string Mid(string param,int startIndex, int length)
        {
            //start at the specified index in the string ang get N number of
            //characters depending on the lenght and assign it to a variable
            string result = param.Substring(startIndex, length);
            //return the result of the operation
            return result;
        }

Returnt die ersten N Zeichen von der Mitte des Strings

Dazu muss ich sagen, diese Snipets sind direkt von http://www.csharphelp.com/archives4/archive616.html übernommen!


Schreibt mir, ob ihr diese Snippets gebrauchen könnt, oder nicht, Verbesserungsvorschläge und Fragen!

Vielen Dank, auf wiedersehen und lG,

Lenny

, , , , , , , , , , , , , ,

Keine Kommentare

[C#] Kleiner, und einfacher Taschenrechner

Einfacher Taschenrechner

Einfacher Taschenrechner

Hallo!

Irgendwie finde ich C# im Moment sehr ansprechend!

Also habe ich ich dazu entschlossen mein 2tes mini Projekt in C# zu schreiben: Ein einfacher Taschenrechner :)

Der Sourcecode versteht sich von selbst: Alles was ich gemacht habe ist auf Knopfdrücke zu reagieren und ggf. bestimmte Buttons zu deaktivieren! :) Durch den Screenshot ist die Gui einfach nachzubauen, nur die Reihnfolge der Buttons (und dadurch auch ihre Bezeichnungen) ist zu beachten.

Hier der Sourcecode:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace SimpleCalc
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        public static string Right(string param, int length)
        {
            string result;
            if (length > param.Length)
            {
                result = "nop";
                return result;
            }
            result = param.Substring(param.Length - length, length);
            //return the result of the operation
            return result;
        }
 
        public void ResetButtons()
        {
            button1.Enabled = true;
            button2.Enabled = true;
            button3.Enabled = true;
            button4.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = true;
            button7.Enabled = true;
            button8.Enabled = true;
            button9.Enabled = true;
            button10.Enabled = true;
            button11.Enabled = true;
            button12.Enabled = true;
            button13.Enabled = true;
            button15.Enabled = true;
            button16.Enabled = true;
            button14.Enabled = false;
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "1";
            string FirstRight = Right(TextTemp,1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "2";
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button3_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "3";
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button5_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "4";
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button6_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "5";
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button7_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "6";
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
            if (FirstRight == ",")
            {
                button14.Enabled = true;
            }
        }
 
        private void button9_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "7";
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button10_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "8";
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button11_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "9";
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button15_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            string FirstRight = Right(TextTemp, 1);
            if (FirstRight != "0")
            {
                textBox1.Text = TextTemp + "0";
            }
            if (FirstRight == "nop")
            {
                textBox1.Text = TextTemp + "0";
                button1.Enabled = false;
                button2.Enabled = false;
                button3.Enabled = false;
                button5.Enabled = false;
                button6.Enabled = false;
                button7.Enabled = false;
                button9.Enabled = false;
                button10.Enabled = false;
                button11.Enabled = false;
                button15.Enabled = false;
            }
            if (FirstRight == "/" || FirstRight == "*" || FirstRight == "-" || FirstRight == "+")
            {
                button16.Enabled = true;
                button14.Enabled = true;
            }
        }
 
        private void button16_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            string FirstRight;
            FirstRight = Right(TextTemp, 1);
            if (FirstRight != "," && FirstRight != "nop")
            {
                textBox1.Text = TextTemp + ",";
                button1.Enabled = true;
                button2.Enabled = true;
                button3.Enabled = true;
                button5.Enabled = true;
                button6.Enabled = true;
                button7.Enabled = true;
                button9.Enabled = true;
                button10.Enabled = true;
                button11.Enabled = true;
                button15.Enabled = true;
                button16.Enabled = false;
            }
        }
 
        private void button13_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "+";
            button1.Enabled = true;
            button2.Enabled = true;
            button3.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = true;
            button7.Enabled = true;
            button9.Enabled = true;
            button10.Enabled = true;
            button11.Enabled = true;
            button15.Enabled = true;
            button16.Enabled = false;
            button13.Enabled = false;
            button12.Enabled = false;
            button8.Enabled = false;
            button4.Enabled = false;
        }
 
        private void button12_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "-";
            button1.Enabled = true;
            button2.Enabled = true;
            button3.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = true;
            button7.Enabled = true;
            button9.Enabled = true;
            button10.Enabled = true;
            button11.Enabled = true;
            button15.Enabled = true;
            button16.Enabled = false;
            button13.Enabled = false;
            button12.Enabled = false;
            button8.Enabled = false;
            button4.Enabled = false;
        }
 
        private void button8_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "*";
            button1.Enabled = true;
            button2.Enabled = true;
            button3.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = true;
            button7.Enabled = true;
            button9.Enabled = true;
            button10.Enabled = true;
            button11.Enabled = true;
            button15.Enabled = true;
            button16.Enabled = false;
            button13.Enabled = false;
            button12.Enabled = false;
            button8.Enabled = false;
            button4.Enabled = false;
        }
 
        private void button4_Click(object sender, EventArgs e)
        {
            string TextTemp;
            TextTemp = textBox1.Text;
            textBox1.Text = TextTemp + "/";
            button1.Enabled = true;
            button2.Enabled = true;
            button3.Enabled = true;
            button5.Enabled = true;
            button6.Enabled = true;
            button7.Enabled = true;
            button9.Enabled = true;
            button10.Enabled = true;
            button11.Enabled = true;
            button15.Enabled = true;
            button16.Enabled = false;
            button13.Enabled = false;
            button12.Enabled = false;
            button8.Enabled = false;
            button4.Enabled = false;
        }
 
        private void button14_Click(object sender, EventArgs e)
        {
            textBox1.Text = "";
            ResetButtons();
        }
 
        private void button17_Click(object sender, EventArgs e)
        {
            string TextTemp;
            string[] TextBuff;
            double CalcResult;
            TextTemp = textBox1.Text;
            if (TextTemp.Contains("+"))
            {
                TextBuff = TextTemp.Split('+');
                CalcResult = Convert.ToDouble(TextBuff[0]) + Convert.ToDouble(TextBuff[1]);
                textBox1.Text = Convert.ToString(CalcResult);
            }
            if (TextTemp.Contains("-"))
            {
                TextBuff = TextTemp.Split('-');
                CalcResult = Convert.ToDouble(TextBuff[0]) - Convert.ToDouble(TextBuff[1]);
                textBox1.Text = Convert.ToString(CalcResult);
            }
            if (TextTemp.Contains("*"))
            {
                TextBuff = TextTemp.Split('*');
                CalcResult = Convert.ToDouble(TextBuff[0]) * Convert.ToDouble(TextBuff[1]);
                textBox1.Text = Convert.ToString(CalcResult);
            }
            if (TextTemp.Contains("/"))
            {
                TextBuff = TextTemp.Split('/');
                CalcResult = Convert.ToDouble(TextBuff[0]) / Convert.ToDouble(TextBuff[1]);
                textBox1.Text = Convert.ToString(CalcResult);
            }
            ResetButtons();
        }
    }
}

Bei Fragen, Anregungen oder Verbesserungsvorschlägen würde ich mich über Kommentare sehr freuen!

Ich hoffe ihr könnt ihn irgendwie (Wenn auch nur als Vorlage oder Denkanstoß) gebrauchen!

Bis Später und lG,

Lenwo


Lenwo hat folgende Dateien angehängt:
[C#] Kleiner, und einfacher Taschenrechner


, , , , , , , , , , , , , ,

Keine Kommentare

[C#] Auflistung aller Startmenüeinträge im Treeview

Startmenü im TreeView

Startmenü im TreeView

Heute habe ich mich mal ein wenig an C# versucht!

Als Projekt habe ich mir überlegt, ganz einfach alle, für alle Benutzer freigegebenen, Startmenüeinträge, in einem Treeview wieder zu geben. Zusätzlich war es mir wichtig, alle Ordner, in dieser Struktur, mit einem kleinen Ordner Icon auszustatten und alle Dateien mit einem Computer Icon.

Für die GUI braucht man nur ein TreeView, sie lässt sich allerdings gut durch einen Aktualisieren Button erweitern.

Es ist warscheinlich nicht die beste Lösung, aber es ist eine! Hier mein Auskommentierter Code:

using System; //Von HIER bis...
using System.IO; // ACHTUNG, System.IO muss ge'use'ed werden!
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace StartMenü
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        //... hier ist es unwichtig, da dieser Teil automatisch Generiert wurde!
        private string FTSearch(string startpath, bool subdir, TreeNode LastNode)
        /*Hier 'basteln' wir uns eine eigene kleine Funktion!
         * Sie heißt 'FTSearch', gibt einen String zurück und hat folgende Parameter:
         * string startpath: der Pfad zu dem Ordner wo das Script anfangen soll die Dateien zu suchen
         * Achtung: die beiden abschließenden Backslash werden Dringend benötigt
         * bool subdir: Hier wird angegeben ob es sich um einen Stamm- oder Unterordner handelt
         * Wenn die Funktion manuell das erstemal aufgerufen wird, empfehle ich,
         * diesen Parameter auf True zu setzen, da sonst alle gefundenen Ordner und Dateien
         * unter dem 'LastNode' aufgelistet werden. Damit sind wir beim letzten Parameter:
         * TreeNode LastNode: Der erste Knoten der erstellt wird, um dem Ganzen
         * soetwas wie eine Überschrift zu geben (s. Screenshot*)
         */
        {
            TreeNode NewNode; //Die Variable 'NewNode' als typ TreeNode Initialisieren
            DirectoryInfo DirList = new DirectoryInfo(startpath);
            //Erstellung einer neuen 'DirectoryInfo' Variable
            //Dieser Teil ist direkt aus der Hilfe übernommen
            //Suche: GetFiles()
            FileInfo[] fiArr = DirList.GetFiles(); //Dateien des Ordners einlesen;
                                                   //returned ein Array
            treeView1.BeginUpdate(); //Verhindert das Manuelle verändern des Treeviews
                                     // durch den Benutzer und startet das Update des Inhaltes
            foreach (FileInfo fri in fiArr) //Für jeden Eintrag des Arrays soll die
                                            //Schleife ein mal Durchlaufen
                                            //und in 'fri' darstellen
            {
                if (fri.Name != "desktop.ini") //Wenn die gefundene Datei 'desktop.ini' heißt,
                                               //soll sie nicht dargestellt werden
                {
                    if (subdir == false)       //Wenn die Suche noch im Stammordner stattfindet
                                               //soll der Dateiname der gefundenen Datei
                                               //als 'Stamm-'Knoten im Treeview darsgestellt werden
                                               //(erste ebene)
                    {
                        TreeNode TempNode = treeView1.Nodes.Add(fri.Name);
                        TempNode.ImageIndex = 1; // ImageIndex der ImageList für das Icon
                        TempNode.SelectedImageIndex = 1; // SelectedImageIndex der ImageList für das Icon
                                                         // = Icon das gezeigt werden soll wenn der
                                                         // bestimmt eintrag ausgewählt wurde
                    }
                    else                       //sonst soll der Name der Datei als SubNod
                                               //des letzen eintrages erstellt werden
                    {
                        TreeNode TempNode = LastNode.Nodes.Add(fri.Name);
                        TempNode.ImageIndex = 1;
                        TempNode.SelectedImageIndex = 1;
                    }
                }
            }
 
            DirectoryInfo[] diArr = DirList.GetDirectories(); //Hier geschieht das gleiche nur für Ordner
            foreach (DirectoryInfo dri in diArr)
            {
                if (subdir == false)
                {
                    NewNode = treeView1.Nodes.Add(dri.Name); //Der letzte erstellte Knoten wir in NewNode gespeichert
                }
                else
                {
                    NewNode = LastNode.Nodes.Add(dri.Name);
                }
                FTSearch(startpath + dri.Name + "\\", true, NewNode);
                /* Hier wird es interessant:
                 * Die gleiche Funktion wird von ihr selber wirder aufgerufen
                 * mit einem Unterodner als Startpfad Parameter, und dem Letzten
                 * gespeichertem Knoten als LastNode!
                 * Dadurch durchläuft die Suche alle Unterordner und gibt
                 * sie gleichzeitig in korrekter Reihenfolge wieder.
                 */
            }
            treeView1.EndUpdate(); //Update des TreeViews beenden
            return "geklappt"; // Rückgabewert der Funktion
        }
 
        private void Form1_Load(object sender, EventArgs e) // Wenn die Form1 geladen wird...
        {
            FTSearch("C:\\Dokumente und Einstellungen\\All Users\\Startmenü\\Programme\\", false , treeView1.Nodes.Add("[StartMenü]"));
            // ... wird die Funktion einfach ausgeführt
        }
    }
}
Startmenü im Treeview - Erster Eintrag

Startmenü im Treeview - Erster Eintrag

Wie oben schon gesagt kann man das ganze einfach mit einem Aktualiesieren Button erweitern, auf den man dann FTSearch legt!

Ich hoffe es ist ein wenig verständlich! Bei Verbesserungsvorschlägen, Fragen oder Anmerkungen würde ich mich über Kommentare freuen! :)

Ich wünsche euch viel Spaß damit,
bis dann, Lenwo


Lenwo hat folgende Dateien angehängt:
[C#] Startmenü in TreeView


, , , , , , , , , , , , , , , , ,

Keine Kommentare