Registrierung Trialversion - Schwer knackbar
-
du kannst codes zB so im programm speichern:
std::string code; code += "a"; code += "b"; code += "c"; code.insert(code.begin() + 2, "f");dann hast du zB den code "abfc"
Ein einfaches IF im Programm ist schon leicht zu knacken. Was besser ist folgendes:
Wenn der Code stimmt oder was auch immer, wird im Programm ein Flag gesetzt dass alles iO ist. Wenn nciht, ist das Flag nicht gesetzt. Man könnte auch zB wenn das Flag gesetzt ist im Programm ein passwortt speichern und dann nutzerdaten mit diesem passwort verschlüsseln und so, so dass der hacker eben nciht genau erkennen kann an welcher stelle es denn nun hapert. Oder auch wenn er es erkennt dass er nicht sieht, warum es abkackt.
-
Lerne selbst zu cracken. Dann kommst du vielleicht auf ein paar Tricks.
Aber im Grunde wirst du nichts uncrackbares hinbekommen.
-
Vielen Dank für die guten Tipps! Ich habe leider keine Zeit für so etwas unproduktives :D. Sonst noch ein paar Tipps?
-
halbiere den preis von deinen produkt, das hilft auch vor crackern
-
verschlüssel teile deines Programmcodes mit dem Passwort ;). wenn der hacker dann das if umgeht, und die programmteile nutzen will, wird ihm das betriebssystem schon saures geben. Ist aber denk ich mal nicht so ohne weiteres umzusetzen, und ist auch nicht unknackbar.
die verschlüsselung stell ich mir mal so vor: natürlich muss man verschiedene Passwörter unterstützen, sodass jeder nutzer sein eigenes Passwort kriegen kann. Nun könnte man einen Algorithmus schreiben, der die passwörter hasht-Alle passwörter die den gleichen hash ergeben, sind dadurch gültig. Dieser hash ist dann der Schlüssel für den Programmteil. dann wird einfach bei jedem Programmstart das Passwort,sofern es eingegeben wurde, ausgelesen, und das Programm erstmal entschlüsselt.
Das Problem ist einfach nur: sobald es zu schwer ist, etwas zu cracken, wird der Schlüssel im netz stehen, also musst du dich eher der Frage widmen wie du es anstellst, dass nicht 1000 Leute mit dem gleichen Code dein Programm nutzen
-
Wieviele Leute bekommen das Programm? Wäre es möglich, dass ihr einfach so ne Art Patch ausliefert, der das Programm zur Vollversion upgradet? Und diesen Patch dann mit dem Kundennamen versehen (versteckt), damit könnt ihr dann sehen, wer seinen "Schlüssel" veröffentlicht und wenn der Kunde das weiß wird er es auch kaum machen.
-
@otze
wenn du den Schlüssel hast kannst du es ja eh aus dem Speicher dumpen.@dali
dann hast du eh schon verloren.
-
dali schrieb:
Sonst noch ein paar Tipps?
Benutze Inline-Funktionen zur Passwortkontrolle an 1000 Stellen im Programm.
Dadurch verhinderst Du schon mal einen "OneByteCrack".
-
Vielen Dank für die sehr guten Tipps!
-
hacker schrieb:
ich würde es mit if machen unknackbar => (fast) unmöglich
rofl mao
damit meinte ich nicht das es (fast) unknackbar ist wenn du eine if verwedest sondern dass es kein Prog gibt(und wahrscheinlich niemals geben wird) das nicht knackbar ist.
-
@Digger
dafür gibt es etwas das nennt sich Interpunktion. Könnte vielleicht hilfreich sein, wenn du willst das andere Menschen dich verstehen.
-
remolusmodulus schrieb:
Wieviele Leute bekommen das Programm? Wäre es möglich, dass ihr einfach so ne Art Patch ausliefert, der das Programm zur Vollversion upgradet? Und diesen Patch dann mit dem Kundennamen versehen (versteckt), damit könnt ihr dann sehen, wer seinen "Schlüssel" veröffentlicht und wenn der Kunde das weiß wird er es auch kaum machen.
Ich finde diesen Ansatz sehrsehr interessant. Warum sollte ein Kunde auch ein Programm hacken das er gekauft hat. Auch noch das Risiko einzugehen, dass irgendwo im Programm noch sein Name drin stehen könnte usw. Gut die Kundenverwaltung ist dabei zwar viel aufwändiger da müsste man sich etwas überlegen.
-
Ich weiß nicht ob es eine passende Erweiterung wäre, aber man könnte doch für jeden Kunden ein "eigenes" Programm schreiben.
Natürlich meine ich nicht serber, sondern von einem anderem Programm "ferngesteuert". Der Quellcode liegt demnach mit Platzhaltern vor und wird dann, nach dem Austausch der Platzhalter, von kompiliert und an den Kunden weitergegeben. In einigen Sprachen / Technologien (z.B.: .NET Framework) könnte dies gut funktionieren.