Crackme erstellen mit einem einfachen Beispiel

liang: Wenn man von einem Thema keine Ahnung hat, einfach mal die ****** halten ;)
Gib's einfach auf, nimm dir ein Buch und lerne erstmal.
 
Es geht darum das bei dir gilt:
[ ]Du hast Schleifen verstanden
[ ] Du hast Integer verstanden
[ ] Du kannst noch jemandem was beibringen
[X]Du denkst du kannst es und willst mit deinem gefährlichen Nichtwissen auch noch anderen was beibringen.
 
Zuletzt bearbeitet:
samal mir ging es hier darum die einfachste und kürzeste form von einem crackme zu erstellen. wir können das mit den schleifen auch ganz sein lassen aber das interessiert dich ja ehh nicht du willst hier nur provozieren:)
was hab ich den falsches von mir gegeben?
crackme funktionsweiße erklärt
die frage zu int beantwortet
geh mal woanders weinen

So nun hab ichs mit while gemacht die endlos-schleife funzt...mir ging es zwar garnicht darum aber egaaaaaaal...
 
Zuletzt bearbeitet:
Schleifen sind ein Grundbestandteil jeder Programmiersprache und die kann man nicht einfach so mal lassen. Und solltest du Leuten hier was falsches erklären ist das auch nicht uninteressant sondern gehört unterdrückt.
Des Weiteren hast du zu int garnichts erklärt. a) kann ein int überlaufen und b) ist seine Größe nicht festdefiniert nach Standard.

Reicht dir das, um Aufzuzeigen was du falsch gemacht hast?


Ich habe den Account schon lange nicht mehr benutzt, aber bei diesem Beitrag blieb mir keine andere Wahl, als ihn mal wieder heraus zu kramen, um die Nachwelt vor gefährlichem Unwissen deinerseits zu schützen!
 
Also mein Freund.
Der Datentyp einer Variable entscheidet darüber, wieviel Platz das Datenobjekt im Speicher belegt und in welchem Format die Variable gespeichert wird. Daraus ergibt sich der Wertebereich ( Inhalt deiner Variablen) für das Objekt!!!
Ehm willste von mir jetzt auch noch alle einzellnen Datentypen erklärt bekommen? un deren Größenbereiche?
Es geht hier net darum jeden einzellnen Begriff zu erklären sondern einfach die Funktion eines Crackmes ganz simpel darzustellen.
 
Was versucht wurde dir zu sagen war, daß du ein int dekrementierst, und es irgendwann zuende ist. Damit ist der Fall einer Endlosschleife nunmal einfach nicht erfüllt. Und ausgehend von dieser Erkenntnis sind die Leute hier der Meinung, daß du nicht unbedingt Crackme-Howtos schreiben solltest.

Ich denke du solltest das nicht als persönlichen Angriff sehen.
 
Im Falle von Int gibt der Datentyp nicht absolut vor, in welchem Format und entsprechend welchem Wertebereich der Inhalt gespeichert wird. Lediglich darum ging es. Und mir brauchst du die Datentypen gewiss nicht aufzählen und erklären.


Und btw, wenn cout bei dir dem globalen Namensraum vorhanden ist, würde ich mir sorgen um deinen Compiler machen.
 
Es geht darum das bei dir gilt:
[ ]Du hast Schleifen verstanden
[ ] Du hast Integer verstanden
[ ] Du kannst noch jemandem was beibringen
[X]Du denkst du kannst es und willst mit deinem gefährlichen Nichtwissen auch noch anderen was beibringen.


Das ist kein persönlicher Angriff?
Ich hab öfters gesagt worum es mir in dem Thread geht.
Die Endlos-Schleife habe ich jetzt verbessert mit ner while Funktion aber darum gehts garnicht. Nur weil man einen Fehler gemacht hat wird man beleidigt und das ist gerademal mein 2. Tag hier.
 
och kinder, glaubt ihr nicht es reicht?
hier muss man doch nicht noch grosz rumkotzen und sich wie im sandkasten verhalten. ist zwar in anbetracht der einsicht des threadstarters teilweise schwer, aber man kanns doch wenigstens versuchen, solange der thread noch hier und nicht verschoben ist, wenn man denn etwas schreibt.
dass das nicht optimal ist (um nicht 'zum kotzen' zu sagen) sollte der starter wohl mitlerweile selber eingesehen haben.
 
So, nun musst Du Dich aber entscheiden, was es sein soll:
ein Programmiertutorial?
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.
Dann müsstest du aber auch den Rest (Includes usw. erklären und andere Foren-Section nutzen.

ein Crackme-Aufbau Tutorial?
Dann ist der Programmier-Erklärungsteil überflüssig und wiederum fehlen Kommentare was einzelne Befehle im "low-level" bewirken, welche Hürden sie für "Cracker"/Debugger darstellen und so weiter.

Ein "How-to Crackmeprogrammieren", damit auch Neulinge Crackmes erstellen können? Bitte nicht - bei solchen Crackmes fehlt jeglicher Sinn für andere (es sei denn, derjenige macht es [das Crackme] nur für sich) ;).
Denn:
Ein Crackme soll eine Herausforderung darstellen - auch wenn es unterschiedliche Stufen gibt (leicht, mittel usw). Jedoch sollte der Ersteller auf dem gleichen Level sein (also sein Erzeugniss selbstständig lösen können und verstehen, was er da zusammenprogrammiert hat) ;). Nur dann kann er sichergehen, dass sein Crackme interessant/ansprechend ist. Denn wir haben schon genug "ich hab' grade mit C/C++ angefangen und mir gedacht, ich mach' mal ein Crackme für euch!" (3 Tage später) "Warum will es keiner Lösen? Ist es zu schwer??? Ich wusste schon, dass ich gut bin 8)".

Deswegen gibt es auch soviele "negative" Beiträge dazu - Dein Posting behandelt kein Thema so richtig, sondern schneidet jede Richtung nur ein wenig an und lässt viele Fragen offen.
 
Also ich hätt dein Beispiel etwa so umgesetzt:

Code:
#include <iostream>
#include <string>

using namespace std;

int main(int argc, char* args) 
{
    string pw = "Geheimes PW";
    string x;
    
    do
    {
        cout<<"Passwort:"<<endl;
        getline(cin, x);
    } while (pw != x);
    cout<<"Passwort ist richtig.";
}
Bin aber leider kein C++ Programmierer ;)
Also keine Ahnung ob das mit getline sicher ist oder nicht.
 
bei mir funktionierts, gibt welche die immer n grund finden weiterzumeckern...
Hmm, ja, weil du es nur noch immer falscher machst.
Code:
...
float w=0.1; //Schleifenvariable
...
while(w !=1.0) //endlos-Schleife gesetzt d.h beliebig viele Versuche
{
...
     w+=0.1;
}
...
An dieser Schleife ist nix endlos. Beim ersten Durchlauf ist w=0.1. Beim zweiten 0.2, beim dritten 0.3, beim siebten 0.7, beim neunten 0.9 und beim zehnten - hupps, wird die Bedingung plötzlich nicht mehr erfüllt (1.0 == 1.0 folglich gibt 1.0 != 1.0 false und die Schleife wird nicht mehr ausgeführt)! Neun Durchläufe sind aber nicht gerade endlos ;-)
Vorschlag:
Code:
...
// KEINE Schleifenvariable
...
while(1) // Endlos-Schleife gesetzt, denn "1" ist immer wahr (= true)
{
...
     // KEINE Erhöhung von w (gibt es ja eh nicht)
}
...

Hoffe, ich hab keinen Denkfehler gemacht, kann kein C++.
 
An dieser Schleife ist nix endlos.
...
Neun Durchläufe sind aber nicht gerade endlos ;-)
Nope, ist Float"Bug"using. Es wird ausgenutzt, dass Float "Löcher" in der Zifferndarstellung hat[1] und deswegen niemals 1.0 erreicht wird. Was natürlich nicht unbedingt die "feine englische" ist, da das z.T Plattform bzw Compilerabhängig sein sollte ;)



[1]0.7+0.1 ergibt bei mir 0.7999999999999998976, deswegen hat man später entweder 0.9999999999999997952 oder 1.0999999999999998720 zum Vergleichen. Irgendwo gab es auch einen netten Artikel dazu:
http://perso.ens-lyon.fr/jean-michel.muller/goldberg.pdf
 
Zurück
Oben