Lizenzvergabe & Aktivierung & ct.

Übersicht Sonstiges Smalltalk

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen

Hummelpups

BeitragSa, Mai 11, 2013 14:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ich denke, solange du selbst nicht in der Lage bist, diese Mechanismen
mit Blitz oder irgendeiner anderen Programmiersprache umzusetzen,
wird deine programmierte Software wohl kaum überhaupt zum Verkauf
ausreichen.

Wer mit programmieren Geld verdienen will und keinerlei Vorkenntnisse hat,
sollte sich bewusst sein, dass es Jahre dauert, bis der Esel endlich gold scheißt
blucode - webdesign - Ressource - NetzwerkSim
BlitzBasic 2D - BlitzMax - MaxGUI - Monkey - BlitzPlus

KnorxThieus

BeitragSa, Mai 11, 2013 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Auch wieder wahr - Sad
*Mannzumteufelmitdiesererschlagendenlogik* Wink

Und wenn es Vereinzelte doch kaufen?
Lohnt es sich auch nicht für solchen Aufwand...

naja trtotzdem Danke.
Version: BlitzPlus / Blitz+

PSY

BeitragSa, Mai 11, 2013 14:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Vorteile: Keine Serververbindung notwendig; ohne einen Key quasi nicht knackbar, auch nicht durch eine Rainbow-Table.



fuer den standarduser nicht. ein profi allerdings braucht 15 mins um das zu disassemblen und den JNZ umzubiegen.


die frage ist allerdings, ob sich der aufwand ueberhaupt lohnt. da gabs vor kurzem auch einen thread dazu.


nice weekend,
PSY
PSY LABS Games
Coders don't die, they just gosub without return

Noobody

BeitragSa, Mai 11, 2013 15:09
Antworten mit Zitat
Benutzer-Profile anzeigen
KnorxThieus hat Folgendes geschrieben:
Ah, Maschinensprache wird direkt vom Prozessor ausgeführt. Aber warum so umständlich?

...
Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun

KnorxThieus

BeitragSa, Mai 11, 2013 15:10
Antworten mit Zitat
Benutzer-Profile anzeigen
@Noobody:
Du bist so nichts sagend. Könntest du dich bitte in Worte fassen?
Version: BlitzPlus / Blitz+

DAK

BeitragSa, Mai 11, 2013 15:29
Antworten mit Zitat
Benutzer-Profile anzeigen
Das will ich sehen, wie man nen MD5+Salt einfach so knackt... Naja, viel Spaß dabei.

Ich hab grad als Test einen WC3-Serial (26-Stellig), den ich auf die schnelle gegoogelt hab, gehasht und den Hash in ein paar Rainbowtables eingegeben. Ist in keiner gefunden worden. Und das war ohne Salt.

MD5 lässt sich nicht rückrechnen. Um das Original zu kriegen brauchst du eine Rainbow-Table, und die sind gerade mal für Werte mit weniger als 12 Stellen flächendeckend gefüllt.

@KnorxThieus:
Also von Anfang:
-Die Serials erstellen kriegst du wohl hin, oder?

-Eine MD5-Funktion kriegst du von hier: klick mich!

-Das Salten geht noch ein wenig einfacher: dafür hängst du dem Key hinten immer noch die gleiche Stringfolge hinten an. Ist hald deutlich umständlicher, aber so musst du dich nicht um 128-Bit-Arithmetik kümmern (Blitz packt ja soweit ich weiß von haus aus nur 32-Bit).

Um deinen Hash aus dem Key zu bekommen machst du dann einfach folgendes:

BlitzBasic: [AUSKLAPPEN]
hash$ = MD5(key$+"SALT")

... wobei du für "SALT" natürlich deine Zeichenkette einsetzt.
Ist wesentlich unsicherer als im Nachhinein salten, geht aber auch so.

In der Form wie sie da raus kommen speicherst du sie in deinem Programm ab, mit dem Select und so weiter.
Wenn jetzt ein User seinen Key eingibt, dann läufst du das wieder durch und überprüfst, ob das Ergebnis mit dem gespeicherten String übereinstimmt. Fertig.


Noch mal ein wenig Theoriehintergrund:
Hash
Ein Hash ist ein Wert, der dir aus einem bestimmten Input immer einen bestimmten Output gibt. Egal wie lang der Input ist, der Output ist immer gleich lang. Das heißt, es ist egal, ob du nur ein Zeichen eingibst, oder ein ganzes Buch, der Hash dazu ist immer gleich lang.
Außerdem bedeutet eine kleine Änderung des Eingabewerts eine große Änderung des Ergebnisses. Beispiele:
Code: [AUSKLAPPEN]
MD5("abcdefghi") = 8aa99b1f439ff71293e95357bac6fd94
MD5("abcdefghj") = 72c64350782e7339b01b2964d90533d2

Eine weitere wichtige Eigenschaft eines Hashes ist, dass man aus dem Hash das Original nicht zurückrechnen kann. Ist einfach nicht möglich.

MD5
MD5 ist eine bestimmte Implementierung eines Hashes.

Rainbow-Table
Wir haben gesagt, man kann den Originalwert nicht aus dem Hash rausrechnen. Um das zu umgehen gibt es Rainbow-Tables. Da speichert man möglichst viele Hashes mit ihren Originalwerten in einer Tabelle. Jetzt kann man dort nach einem Hash suchen und kriegt das Original, oder zumindest eine Kollision, also einen anderen Wert, der auf den gleichen Hash zurückführt.
Hast du also einen Hash und eine Rainbow-Table, in der der Hash drinnen ist, dann kannst du damit eventuell den Originalwert zurückrechnen.
Rainbow-Tables haben meistens quasi alle kurzen Zeichenketten, aber selten was Längeres als 12 Zeichen oder so, wenn es keine Wörter sind.

Salt
Ein Salt wird verwendet, um die Rainbow-Tables zu kontern, indem man den Hash etwas umändert, so dass er nicht mehr das reine Standard-Hash-Ergebnis hat, und somit nicht mehr in den normalen Rainbow-Tables vorkommt. Dazu gibt es zwei Möglichkeiten, die ich beide schon erwähnt habe. Entweder saltest du bevor du hasht, oder danach.
Davor geht, indem du dem Wert noch etwas anhängst, bevor du hasht, danach indem du etwas zum fertigen Hash dazurechnest.
Das Vorhashen hat das Problem, dass es immer noch mit den Rainbow-Tables knackbar ist.
Sagen wir, das Original ist "test" und du saltest es, indem du "hallo" anhängst. Der MD5 wird also errechnet durch MD5("testhallo"). Dieser Wert lässt sich in Rainbow-Tables finden, der Hacker hat also das Wort "testhallo" gefunden. Jetzt muss er nur noch aus dem "testhallo" wieder auf "test" kommen. Bei Serials ist das nicht so schwer, da die ja meistens eine fixe Länge haben. Sollte der Serial also 25 Zeichen lang sein, er kriegt aber einen Wert mit 30 Zeichen, dann lässt er die letzten 5 weg und drin ist er.
Beim danach salten geht das bei weitem nicht so leicht. Da kann er mit der Rainbow-Table nix anfangen.

Ist dein Serial lang und zufällig genug, dann kannst du das Salten eh weglassen, weil es noch Jahre brauchen wird, bis Rainbow-Tables groß genug werden, um wirklich lange Zeichenketten hinzukriegen.
Gewinner der 6. und der 68. BlitzCodeCompo

Lord Stweccys

BeitragSa, Mai 11, 2013 15:35
Antworten mit Zitat
Benutzer-Profile anzeigen
@KnorxThieus

Jedes Programm, welches auf deinem PC läuft ist in Maschinensprache geschrieben.
Dies lesbare Form davon nennt sich Assembler.
Auch Blitz3D Programme sind natürlich in Maschinensprache verfasst, aber der eigentliche Quellcode,
den du gemütlich in die IDE eintippst, wird glaube ich in einen Bytecode kompiliert, was bedeutet,
dass man hier nicht unbedingt mit Kenntnissen in Assembler weiterkommt.

Im Übrigen bin ich dafür, dass hier eine Gefällt-Mir-Funktion für so Posts wie von Noobody eingeführt wird Very Happy

DAK

BeitragSa, Mai 11, 2013 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Wir sollten so ne Art Grundlagentutorial für Anfänger hier schreiben, weil doch sehr viele Anfänger keinen Plan haben, was sich unter der Haube von nem Computer tut.
Gewinner der 6. und der 68. BlitzCodeCompo

Propellator

BeitragSa, Mai 11, 2013 16:04
Antworten mit Zitat
Benutzer-Profile anzeigen
KnorxThieus hat Folgendes geschrieben:
@Noobody:
Du bist so nichts sagend. Könntest du dich bitte in Worte fassen?

user posted image
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

KnorxThieus

BeitragSa, Mai 11, 2013 16:06
Antworten mit Zitat
Benutzer-Profile anzeigen
@DAK:
Mann, ganz toll, ganz vielen Dank dass du mir das so verständlich erklärt hast! Du solltest das in den Tutorials posten.
Habe mir das jetzt durchgelesen; Gut!
Bloß versteh ich jetzt nicht ganz, wie ich in der Praxis anfangen soll.
Ich muss also NUR die MD5-Werte im Programm mit mir herumschleppen? Und wenn ja, darf ich das in einer Datei speichern?
BlitzBasic: [AUSKLAPPEN]
If MD5(entered$ + "Das kriegste nie entschlüsselt, HaHa!") = "195f63d89ad99149f2f76b5104e8926a"
RuntimeError "Du hast den einzig wahren Key eingegeben!"
EndIf


Und dann eben die Liste von MD5 prüfen?

Puh... muss ich überschlafen xD

EDIT: Sollte klappen mit:
Code: [AUSKLAPPEN]
B25-928-HKL-I3J-M82
Version: BlitzPlus / Blitz+
  • Zuletzt bearbeitet von KnorxThieus am Mo, Aug 05, 2013 14:41, insgesamt einmal bearbeitet

Propellator

BeitragSa, Mai 11, 2013 16:09
Antworten mit Zitat
Benutzer-Profile anzeigen
KnorxThieus hat Folgendes geschrieben:

Ich muss also NUR die MD5-Werte im Programm mit mir herumschleppen? Und wenn ja, darf ich das in einer Datei speichern?


MD5 ist heute innert kurzer Zeit mithilfe von GPUs geknackt, auch wenn man die hashes salted. Ich würde die nicht mitliefern.
Propellator - Alles andere ist irrelephant.
Elefanten sind die Könige der Antarktis.

KnorxThieus

BeitragSa, Mai 11, 2013 16:10
Antworten mit Zitat
Benutzer-Profile anzeigen
Propellator neuerer Beitrag: Wie soll ich dann überprüfen?

Propellatpr früherer Beitrag: Hä? Das geht als Spam durch!
Außerdem hast du dich auch nicht in Worte gefasst.
. . .
Version: BlitzPlus / Blitz+
  • Zuletzt bearbeitet von KnorxThieus am Sa, Mai 11, 2013 16:33, insgesamt einmal bearbeitet

DAK

BeitragSa, Mai 11, 2013 16:26
Antworten mit Zitat
Benutzer-Profile anzeigen
@Knorx: Ganz ehrlich und nicht böse gemeint: Mach zuerst das Programm, dann den Kopierschutz Wink

Solche Sachen sind was, um das man sich am Ende kümmert. Man sieht's leider ganz häufig, dass Anfänger ihr Killer-MMORPG, das so genial ist, dass selbst WoW nichts dagegen hat mit einem Autoupdater und einem schicken Menü beginnen und nach zwei Stunden Arbeit am eigentlichen Spiel entweder herausfinden, dass sie sich übernommen haben, oder einfach so die Lust verlieren.

@Propellator: hast du sogar recht, tut mir leid, war ich noch ein wenig hinten nach mit dem Stand der Dinge.
Gewinner der 6. und der 68. BlitzCodeCompo

KnorxThieus

BeitragSa, Mai 11, 2013 16:32
Antworten mit Zitat
Benutzer-Profile anzeigen
@DAK: Natürlich, kenne ich... ich nicht schlimm das du das sagst...
Ich habe über 20 angefangene Programme, bei denen ich mit übernommen hatte. Einen Translator versucht zu bauen, und kannte noch keine Types!
ich will jetzt nicht behauptet haben, kuriert zu sein.
Aber jetzt habe ich einen simplen Screensaver gebaut, der funktioniert, und jetzt will ich einfach das Drumherum entwerfen! Kauft eh keiner, macht aber Spaß!
Version: BlitzPlus / Blitz+
  • Zuletzt bearbeitet von KnorxThieus am Mo, Aug 05, 2013 14:42, insgesamt einmal bearbeitet

PSY

BeitragSa, Mai 11, 2013 16:34
Antworten mit Zitat
Benutzer-Profile anzeigen
DAK hat Folgendes geschrieben:
Das will ich sehen, wie man nen MD5+Salt einfach so knackt... Naja, viel Spaß dabei.


Wer redet davon, den MD5+Salt zu knacken? Wozu denn? Das Programm oder Teile davon sind ja nicht verschluesselt. Also braucht man auch keine Verschluesselung rueckgaengig zu machen...

Irgendwo im Code steht sowas:

09D8:0140 CMP BYTE PTR [A76C],00
09D8:0145 JNZ 014B
09D8:0148 CALL 0C50
09D8:014B MOV AH,18

Uebersetzt ganz grob:

Wenn der Key stimmt mach weiter, ansonsten zeige NAG-Screen.
Der Cracker biegt einfach den Jump um oder aendert den Wert, der compared wird, oder nil'd den Jump, und der Kaese ist gegessen.

Der MD5 kann unknackbar sein, es interessiert bloss keinen, weil der Check ausgehebelt wird. Es liegt halt keine Verschluesselung vor...


PSY
PSY LABS Games
Coders don't die, they just gosub without return

KnorxThieus

BeitragSa, Mai 11, 2013 16:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn ich mein Programm 10mal verkaufe, wird da kein Profi-Knacker angeheuert...
Version: BlitzPlus / Blitz+

Lord Stweccys

BeitragSa, Mai 11, 2013 16:40
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du dein Programm 10mal verkäufst, warum machst du dir dann ernsthaft Gedanken über so ein Freischaltdings? :O

KnorxThieus

BeitragSa, Mai 11, 2013 16:41
Antworten mit Zitat
Benutzer-Profile anzeigen
Weils Spaß macht!

Warum machen wir das denn sonst?
Version: BlitzPlus / Blitz+

DAK

BeitragSa, Mai 11, 2013 17:00
Antworten mit Zitat
Benutzer-Profile anzeigen
@PSY: Da hast du natürlich recht, daran hab ich nicht gedacht.


@KnorxThieus: Wenn es sich 10 mal verkauft. Ich denke, 10 ist eine Grenze, die hier in diesem Forum vielleicht 1% der User erreicht hat.
Gewinner der 6. und der 68. BlitzCodeCompo

KnorxThieus

BeitragSa, Mai 11, 2013 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
@DAK: und die anderen? haben die mehr oder weniger?
hier entstehen doch tolle Spiele!
Version: BlitzPlus / Blitz+

Gehe zu Seite Zurück  1, 2, 3  Weiter

Neue Antwort erstellen


Übersicht Sonstiges Smalltalk

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group