pc GUID (oder wie das heißt ) erstellen/auslesen

  • GM 8
  • pc GUID (oder wie das heißt ) erstellen/auslesen

    Ich hab folgendes problem ich möchte mir (mehr zum Spaß) ein lizens system einbauen . das geht auch gut aber teoretich kann jeder ja das lizensfile einfach auf einen andren pc schieben und dort benutzen ich bräucht also die möglichkeit eine eindeutige identifikationsnummer für jeden pc zu erstellen ( so eine GUId) welche ich dann in den key einrechne weiß jemand wie man diese ausließt /erstellt?
    :rage:
  • Öhm

    Hab ich selbst schon mal für ein Spiel versucht:

    Auf einem Server eine Lizensschlüssel.txt erstellen.
    Dann wenn man seinen Lizenzschlüssel eingibt und auf validieren drückt wird eine Anfrage zum Server geschickt.
    Dort wird dann in der txt geschaut ob der Schlüssel existiert, und wenn ja ob er verwendet wird. Wenn ersteres zutrifft und 2tes nicht, dann eine Meldung: Schlüssel Okay! Hier Account erstellen, das dann über den Server machen und badabang!
    Knack, so sollte es gehen.
    Habe es selbst nie ausprobiert.
  • @Tezla:
    Kannst du dir solche Posts nicht allmählich mal verkneifen? Bitte? Allmählich krieg ich davon physische Schmerzen.
    Erstens ist der Post ein wenig an der Fragestellung vorbei. Nämlich komplett.
    Zweitens ist er auch so ziemlich unbrauchbar, weil die Lösung, die du hier vorschlägst, viel zu vage ist, um damit irgendwas anfangen zu können. Validierung über einen Server, ja... und?
    Mal davon abgesehen, dass ein Lizenzschlüsselsystem in einem Gamemakerspiel eh etwas banane ist, weil es immer noch den (halb)guten, alten Decompiler gibt, ist genau das auch der Grund, warum man Validationen über Server - am besten gleich noch mit Zugriff auf einen passwortgeschützen Webspace, damit das Passwort im Klartext in der gmk steht - besser bleiben lassen sollte.
    Und dass du es selbst nie ausprobiert hast (RIESENüberraschung!!1!), obwohl du am Anfang des Posts noch behauptet hast, es selbst mal für ein Spiel versucht zu haben, ist auch... interessant.

    @ meav33:
    Wenn du trotzdem ein Verschlüsselungssystem einbauen willst - und sei es auch nur, um ein bisschen mit Kryptozeug rumzuspielen, dann könntest du das zum Beispiel folgendermaßen machen:
    (Anmerkung: Ich gehe hier davon aus, dass der User keinen Decompiler besitzt - wenn er das tut, ist das System ohnehin für'n Hintern, weil der Code komplett einsehbar ist)
    Du lässt einmalig via random() eine Liste voller beliebiger Zahlenfolgen generieren (oder denkst dir selbst welche aus) und baust diese Liste in deinen Code ein - das wären dann deine Prüfsummen für die Lizenzschlüssel.
    Aus einer dieser Summen erstellst du dann einmal pro User - z.B. beim ersten Start des Spiels - mit einem möglichst komplexen (aber umkehrbaren) Algorithmus eine verschlüsselte Zeichenkette und lässt die dann dem User ausgeben. Dabei gibt's aber eine Schwierigkeit: Du musst aufpassen, keine ASCII-Steuerzeichen wie NULL oder CR zu treffen - der GM fängt sowas nämlich nicht ab (und andere Texteditoren erst recht nicht), d.h. der String, den du ausgibst, wird dadurch evtl. ziemlich fies zerballert.
    Wenn der User den verschlüsselten String dann mal hat, kannst du ihn später, wo auch immer du die Abfrage einbaust, wieder eingeben lassen. Die Umkehrfunktion des Verschlüsselungsalgorithmus würde dir dann aus dem Kryptostring wieder die ursprüngliche Prüfsumme machen - dann müsstest du nur noch prüfen lassen, ob sich diese Summe in der Liste möglicher Schlüssel befindet - und badabang!

    Du merkst an dieser Stelle vielleicht schon, das Ganze ist ne ziemlich komplizierte Angelegenheit - aber Spaß macht's allemal, wenn du die zeit und Motivation dafür aufbringen kannst. :D
    In einem GM-Spiel ist Krypto aber wie gesagt nicht so das wahre - zumindest, wenn's um sowas wie Lizenzschlüssel geht - das gmk-Format ist schon seit mindestens 3 GM-Versionen geknackt, da kann jedes Skriptkiddie inzwischen leicht in deinen Code gucken.
  • @Tezla Nein, nein, nein. So sollte man NIEMALS ein Lizenzschlüsselsystem umsetzen.

    Was meav33 aber will, ist eine Lösung über eine "GUID" - ohne Server. Eine einfache Variante wäre, aus diversen Eigenschaften des Systems (MAC-Adresse, Betriebssystem, sonstige Hardware) einen Hash zu bilden. Da bekommst du aber direkt zwei Probleme: 1. Die Hashfunktion sollte sich nicht in deinem Programm befinden, denn dann kann man sie theoretisch auslesen. 2. Wenn dein Nutzer nur eine Kleinigkeit an seinem Computer ändert, wird seine Lizenz ungültig.

    Willst du deshalb maschinenexklusive Lizenzen haben, ist eine Lösung mit einem Server vermutlich die bessere Wahl. Dann muss man aber auch wieder zig Dinge beachten.
  • Dies sollte in etwa das sein was du brauchst: gmc.yoyogames.com/index.php?showtopic=471440
    Leider ist es eine hochkompakte DLL, d.h man hat 0 Information darüber was in diesem Key überhaupt drin steckt. Aber denke das erhöht auch die Sicherheit ein wenig.

    EDIT: Aber habt ihr gesehen dass dieser Thread 4 Monate alt ist? :whistling:

    Willst du auf diese Drachen und -eier klicken?
    Sie werden sich freuen ;)
  • Yoyogames sollte GameMaker-EXEs endlich mal kompressorfreundlich machen. Es gibt zahlreiche EXE-Kompressoren, die eine Manipulation fast komplett verhindern. Doch leider kann der GM dann auch nicht mehr auf die Ressourcen zugreifen. Da liegt glaub ich auch das Problem mit dem Cracken von GameMaker-Spielen.


    Und siehe da!
    Ein Tag nach dem Vorschlag, teilt mir Yoyogames mit, dass sie den GM für EXE-Kompressoren kompatibel machen!

    :thumbsup: :thumbup: