Hackerboard WikiHaboBlog

[HaBo]

 
Hacks & Crackmes Tests, Fragen oder Hilfestellungen. Crackmes und Hackits werden hier diskutiert.

Crackme erstellen mit einem einfachen Beispiel

Diskussion: Crackme erstellen mit einem einfachen Beispiel im Forum Hacks & Crackmes, in der Kategorie Software Home; Hallo liebe HaBo'ler. Ich habe ein Crackme-Beispiel erstellt für Neulinge unter uns. Hierbei geht es um das einfache Verständniss vom ...

Antwort
Alt 08.01.10, 16:38   #1 (permalink)
 
Registriert seit: 07.01.10
liang Leistung: Facit NTK
Likes: 0
Lightbulb Crackme erstellen mit einem einfachen Beispiel


Hallo liebe HaBo'ler.
Ich habe ein Crackme-Beispiel erstellt für Neulinge unter uns.
Hierbei geht es um das einfache Verständniss vom Crackme somit ist das Programm so kurz wie möglich zusammengefasst worden. Schriftfarbe, Hintergrundfarbe oder eine grafische Oberfläche sind grunddessen nicht vorhanden.
Dies ist mein erster Thread, falls ihr Kritik ausüben wollt bitte berücksichtigen
Wenn es noch Fragen gibt stehe ich gern zur Verfügung.


Kleine Infos bezüglich der Codierung:

blaue Schriftfarbe: Kommentare, keinerlei Einfluss auf den Ablauf und ist nicht sichtbar für den Benutzer. Dient nur zum Verständniss des Ablaufs (PS:sehr hilfreich wenn ihr größere Programme schreibt )

rote Schriftfarbe: Text, der für den Benutzer sichtbar ist. Hat ebenfalls keinen Einfluss auf die Funktion.

schwarze Schriftfarbe: Funktionen zum Beispiel Bibliothek einfügen, Variable definieren usw.

...
...
Sooo lassts euch schmecken

gruß liang

Code:
//CRACKME 1.0 liang
#include <iostream.h>

float w=0.1; //Schleifenvariable
int x; //Passwortvariable
int main()
{
    while(w !=1.0) //endlos-Schleife gesetzt d.h beliebig viele Versuche
    {
    cout<<"***********************************************************************"<<endl;
    cout<<"******************************CRACKME**********************************"<<endl;
    cout<<"***********************************************************************"<<endl;
    cout<<endl;
    cout<<"Bitte Passwort eingeben:";
    cin>>x;
    if(x==1234) //Somit wird unser Passwort bestimmt,doppel = ist notwendig sonst versteht unser Compiler die Funktion nicht als Vergleich, sondern als Gleichsetzung von unserer x-Variable und dem Passwort.
    {
//Falls die Bedingung erfüllt ist (in diesem Beispiel, wenn der Cracker 1234 eingetippt hat) erscheint folgendes:
    cout<<"Resultat:Du hast es geschafft"<<endl;
    }
    else
    {
//Falls die Bedingung nicht erfüllt ist (wenn der Cracker nicht 1234 eingetippt hat erscheint folgendes:
    cout<<"Resultat: Falsch, versuch es erneut!"<<endl;
    }
     w+=0.1;
    }
}

Geändert von liang (08.01.10 um 19:10 Uhr)
liang ist offline   Mit Zitat antworten
Alt 08.01.10, 18:06   #2 (permalink)
Member of Honour
 
Registriert seit: 01.02.02
AaFreak Leistung: Facit NTK
AaFreak eine Nachricht über ICQ schicken
Likes: 0
Standard

Ich finds ja schön und gut, das du hier ein Tutorial für ein Crackme reinstellst aber:
Zitat:
Zitat von liang Beitrag anzeigen
Code:
int w; //Schleifenvariable
int x; //Passwortvariable
Wieso nimmst du da keine lokale Variablen?

Zitat:
Zitat von liang Beitrag anzeigen
Code:
for(w=0;w<9;w++) //endlos-Schleife gesetzt d.h beliebig viele Versuche
Wieso soll das eine Endlos-Schleife sein?
AaFreak ist gerade online   Mit Zitat antworten
   
HaBOT
 

Werbung ist gerade online    
Alt 08.01.10, 18:23   #3 (permalink)
Themenstarter
 
Registriert seit: 07.01.10
liang Leistung: Facit NTK
Likes: 0
Standard

Zitat:
Zitat von AaFreak Beitrag anzeigen
Ich finds ja schön und gut, das du hier ein Tutorial für ein Crackme reinstellst aber:

Wieso nimmst du da keine lokale Variablen?


Wieso soll das eine Endlos-Schleife sein?


also,
du deiner frage bezüglich der endlos-schleife:
int w; ist deine variable für die schleife.
w=0 <- dein startwert.
w<9 <- dein endwert (wenn w kleiner ist als 9 soll es aufhören sich zu wiederholen).
w++ <- es wird hochgezählt.
w wird durch ausführen nicht größer, da nix addiert wird während es einmal durchläuft.
falls du zb nur 5 versuche haben willst musst du in deinem hauptprogramm unten w=w+1; hinzufügen, somit erreichst du dass es hochzählt und am endwert ankommt.du kannst die anzahl der versuche je nach belieben ändern, durch vertauschen vom end od startwert und ebenso mit deiner w=w+x gleichung

und erklär mir mal bitte was du mit lokalen variablen meinst...etwa andere datentypen?...falls ja kann ich dich beruhigen denn die wahl deines datentyps ist variabel du musst halt nur drauf achten dass du es deklarierst..gibt folgende typen: unsigned char, char, short int, unsigned int, int, unsigned long, enum, long, float, long double.
falls du die genauen zahlen und größenbereich wissen möchtest sag bescheid, ich hoffe das war die richtige antwort auf deine frage oO..

Geändert von liang (08.01.10 um 18:27 Uhr)
liang ist offline   Mit Zitat antworten
Alt 08.01.10, 18:25   #4 (permalink)
Themenstarter
 
Registriert seit: 07.01.10
liang Leistung: Facit NTK
Likes: 0
Standard

ahja falls du dran zweifelst dass es ne endlos-schleife ist,
kannste dich selbst davon überzeugen indem du den code einfach in deinen compiler reinkopierst und ausführst

mfg liang
liang ist offline   Mit Zitat antworten
Alt 08.01.10, 18:29   #5 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: 8086xeno Leistung: 8086
xeno eine Nachricht über ICQ schicken
Likes: 65
Standard

Zitat:
Zitat von liang Beitrag anzeigen
int w; ist deine variable für die schleife.
w=0 <- dein startwert.
w<9 <- dein endwert (wenn w kleiner ist als 9 soll es aufhören sich zu wiederholen).
w++ <- es wird hochgezählt.
w wird durch ausführen nicht größer, da nix addiert wird während es einmal durchläuft.
w=0 // Startwert
w<9 // Mach weiter, solange w kleiner als 9 ist
w++ // Bei jeden Durchlauf um 1 inkrementieren

Ist schon richtig was AaFreak zu dir sagte

Zum Thema lokale Variablen: du deklarierst die Variablen außerhalb der Funktion in der sie genutzt werden, das ist unnötig. w könntest du zum Beispiel in der for-Anweisung selber deklarieren... und so weiter...
xeno ist offline   Mit Zitat antworten
Alt 08.01.10, 18:31   #6 (permalink)
Themenstarter
 
Registriert seit: 07.01.10
liang Leistung: Facit NTK
Likes: 0
Standard

oh um eine endlos schleife zu setzen muss man -- statts ++
SORRY...-.-
liang ist offline   Mit Zitat antworten
Alt 08.01.10, 18:33   #7 (permalink)
Senior Member
 
Benutzerbild von odigo
 
Registriert seit: 25.12.04
odigo Leistung: 8086odigo Leistung: 8086
odigo eine Nachricht über ICQ schicken
Likes: 50
Standard

Zitat:
Zitat von liang Beitrag anzeigen
w++ <- es wird hochgezählt.
w wird durch ausführen nicht größer, da nix addiert wird während es einmal
durchläuft.
Ähm du sagst es ja selber daß hochgezählt wird. Das ist keine Endlosschleife.
Zitat:
Zitat von liang Beitrag anzeigen
falls du zb nur 5 versuche haben willst musst du in deinem hauptprogramm unten w=w+1; hinzufügen, somit erreichst du dass es hochzählt und am endwert ankommt.du kannst die anzahl der versuche je nach belieben ändern, durch vertauschen vom end od startwert und ebenso mit deiner w=w+x gleichung
hä? Wenn man eine andere Anzahl der Versuche haben will sollte man das direkt in der for-Anweisung machen.
Zitat:
Zitat von liang Beitrag anzeigen
und erklär mir mal bitte was du mit lokalen variablen meinst...etwa andere datentypen?
Du deklarierst die Variblen ausserhalb von der main, ergo sind die Variablen global deklariert. Das ist halt unsauber. In dem Fall würde man die Variablen in der main deklarieren.
odigo ist gerade online   Mit Zitat antworten
Alt 08.01.10, 18:33   #8 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: 8086xeno Leistung: 8086
xeno eine Nachricht über ICQ schicken
Likes: 65
Standard

Zitat:
Zitat von liang Beitrag anzeigen
oh um eine endlos schleife zu setzen muss man -- statts ++
SORRY...-.-
for( ; ; ) { }

sowas müßte eigentlich gehen...

oder:

while(1) { }
xeno ist offline   Mit Zitat antworten
Alt 08.01.10, 18:34   #9 (permalink)
Member of Honour
 
Registriert seit: 01.02.02
AaFreak Leistung: Facit NTK
AaFreak eine Nachricht über ICQ schicken
Likes: 0
Standard

Lokale Variablen sind in der Funktion deklariert, nicht außerhalb.
Code:
int main() {
   int w;
   int x;
}
Code:
for (w = 0; w < 9; w++) {
   // Mach was
}
Ist keine Endlos-Schleife, sie wird von w = 0 bis 8 durchlaufen, also 9 mal.

Edit: Oh zu spät.
AaFreak ist gerade online   Mit Zitat antworten
Alt 08.01.10, 18:36   #10 (permalink)
Themenstarter
 
Registriert seit: 07.01.10
liang Leistung: Facit NTK
Likes: 0
Standard

Also. Es tut mir leid das war wirklich ein leichtsinnsfehler
Nun ist es eine Endlos Schleife ich hab den Zähler einfach auf minus gestellt er kommt niemals auf 8 an. Endlos-Schleifen kann man beliebig kreieren.
liang ist offline   Mit Zitat antworten
Alt 08.01.10, 18:37   #11 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: 8086xeno Leistung: 8086
xeno eine Nachricht über ICQ schicken
Likes: 65
Standard

Zitat:
Zitat von liang Beitrag anzeigen
Endlos-Schleifen kann man beliebig kreieren.
Kann man, tut man aber nicht. while(1) ist dein Freund

Ach... es ist übrigens noch immer keine Endlosschleife
xeno ist offline   Mit Zitat antworten
Alt 08.01.10, 18:41   #12 (permalink)
Member of Honour
 
Registriert seit: 01.02.02
AaFreak Leistung: Facit NTK
AaFreak eine Nachricht über ICQ schicken
Likes: 0
Standard

Das ist leider auch falsch. Wenn du bei -2.147.483.648 angekommen bist und nochmal dekrementierst hüpft er auf +2.147.483.647und das ist nunmal > 9.

Edit: Sorry, kommt natürlich drauf an wie der int definiert ist. 2 Byte oder 4 Byte
AaFreak ist gerade online   Mit Zitat antworten
Alt 08.01.10, 18:41   #13 (permalink)
Themenstarter
 
Registriert seit: 07.01.10
liang Leistung: Facit NTK
Likes: 0
Standard

Zu der Frage mit den lokalen Variablen:
Wenn mein Programm eine einfache Funktion hat dann deklariere ich die Variablen global, hat keinen Sinn ist einfach so angeboren . Da es klappt ist das kein Problem meiner Meinung nach. Problematisch wirds wenn mein Programm mehrere Funktionen haben sollte sprich Unterprogramme.
liang ist offline   Mit Zitat antworten
Alt 08.01.10, 18:43   #14 (permalink)
Themenstarter
 
Registriert seit: 07.01.10
liang Leistung: Facit NTK
Likes: 0
Standard

ohje immernoch keine endlos schleife?...ich hab da 30x oder so draufgeklickt und ging davon aus dass es auch mit minus funktioniert *kotz*
liang ist offline   Mit Zitat antworten
Alt 08.01.10, 18:44   #15 (permalink)
Moderator
 
Benutzerbild von xeno
 
Registriert seit: 09.09.04
xeno Leistung: 8086xeno Leistung: 8086
xeno eine Nachricht über ICQ schicken
Likes: 65
Standard

Zitat:
Zitat von AaFreak Beitrag anzeigen
Edit: Sorry, kommt natürlich drauf an wie der int definiert ist. 2 Byte oder 4 Byte
War das ne 32Bit / 64Bit Geschichte? Bin da ein wenig raus...
xeno ist offline   Mit Zitat antworten
Antwort

Stichworte
crackme, passwort, programmieren, programmierung
   

Werbung ist gerade online    

[HaBo] » Software Home » Hacks & Crackmes » Crackme erstellen mit einem einfachen Beispiel
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61