Noch ein .net-Crackme. Diesmal mit selbstentwickeltem Schutz

Hier ist noch ein CrackMe von mir.

Ihr benötigt wieder das .net-Framework 2.0 um es auszuführen.

Der Schutzmechanismus ist von mir. Zusätzlich ist die exe mit einem schlechten Obfuscator verschleiert worden.

Bin mal gespannt, wer es knackt.

Erlaubt ist alles. Keygen, Abfragen rauspatchen usw...

Wenn das Crackme geknackt wurde, gibts eine Erfolgsmeldung. Ansonsten immer nur "Falsches Passwort".

Viel Spaß damit.
 
Hallo KarlRanseier,

so wie ich den Code verstanden habe, läuft es so ab:

Aus dem eingegebenen PW und 'Ivan Medvedev' wird mit Hilfe der PasswordDeriveBytes-Klasse ein PW und daraus 2 Schlüssel erzeugt. Diese 2 Schlüssel (Key, IV) werden benutzt um den Rijndael-verschlüsselten Stream der 'Dummy.exe' wieder
zu entschlüsseln.
Falls diese dann valid ist wird sie gestartet und gibt wahrscheinlich die Erfolgsmeldung aus, ansonsten Exception -> 'Falsches Passwort'.

Da die PW's aus dem Code nicht gehen, ist es meiner Meinung nach sehr schwer ein funktionierendes PW
zu finden. Oder ich habe etwas übersehen :)

Gruss, cagiv
 
Hi,

ich erklär mal, wie das crackme aufgebaut ist:

Die ganze Klartext-Passwörter in der EXE sind nur Fassade. Das CrackMe hat als Resource das eigentliche ausführbare Programm. Die Dummy.exe. Die Dummy.exe ist verschlüsselt. Der Schlüssel ist das eigegebene Passwort. Wenn das Passwort falsch ist, fliegt in dem Programm eine Exception, da kein gültiges Assembly (die Dummy.exe) aufgerufen wird. Die Exception wird abgefragen und eine "Falsches Passwort" ausgegeben.

Ich glaube nicht, dass dieses CrackMe lösbar ist. Außer wenn man mit Bruteforce das Passwort crackt. Aber selbst das ist sehr unwahrscheinlich bei der Länge und Komplexität der Passwortes.

Ich hab schon überlegt das Prinzip als richtigen Kopierschutz einzusetzen. Da gibt aber einige Schwierigkeiten. Sobald jemand ein Programm kauft, was mit diesem Kopierschutz geschützt ist und einen gültigen Key bekommt, liegt das zu schützende Assembly unverschlüsselt im Arbeitsspeicher. Das bekommt man relativ leicht wieder auf die Platte geschrieben. Nun existiert also eine ungeschützt Version des Programms.
Eine Lösung wäre, in das zu schützende Programm einmalige Daten zu schreiben, wie z.B. Name und Anschrift des Käufers. Dadurch wird er das Programm wohl kaum ins Internet stellen, weil ja sein Name und seine Anschrift im Programm steht. Andersrum ist es aber auch nicht schwer, diese persönlichen Daten aus dem Programm wieder zu entfernen.
Als ganz alltagstauglich ist dieses Verfahren noch nicht.

ich behaupte mal, dass das crackme unknackbar ist, nach normalen maßstäben. da das innere assembly mittels AES verschlüsselt ist und das passwort der schlüssel zum entschlüsseln ist. man müsste es schon mit bruteforce oder mit sicherheitslücken in AES versuchen um das crackme zu knacken.

wie schon im spoiler beschrieben, gibts aber zu viele nachteile um so einen schutz in seine programme einzubauen.
 
Original von Schlumpf2009
welchen z.b. der aufwand bestimmt nich im vergleich zum nutzen
Welche Vorteile? Demoversionen kann man damit nicht anbieten - nur das Fertigprogramm sichern. Ob man nun die Vollversion an den Kunden verschickt oder dieser sich das Programm herunterlädt und man nur das Passwort verschicken muss, macht imho keinen nennenswerten Unterschied ;). Wird der Schlüssel bekannt, ist der Schutz nutzlos - sowohl bei gewollter Weitergabe (hier müsste man z.B personalisierte Keys verwenden, um eine Weitergabe nachweisen zu können) wie auch bei elektronischem Einbruch beim Kunden (gibt noch mehr Wege, an einen gültigen Key zu kommen).

Der Gedanke an sich ist ja nicht neu - schon PECompact bringt ein Passwortplugin mit - von Protectoren wie ASProtect/ExeCrypter&Co ganz zu schweigen (Teilverschlüsselung des Programms). Allerdings werden auch solche Teilgeschützten Programme gecrackt (der Schutz kann dann eben erst dann entfernt werden, wenn irgendein Key verfügbar wird - was früher oder später aber passiert).
 
Zurück
Oben