Freischaltungs Tut Teil 2

    • GM 7

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • Freischaltungs Tut Teil 2

      Hallo.

      Ich hab ja schonmal eine Freischaltungstutoroial gestaltet, wo man über einer Datei ein Programm oder Spiel freischalten kann.
      Jetzt möchte ich das ganze nocheinmal anders gestalten.
      Beim Spiel Start wird eine Message Box angezeigt, in der steht, dass man den Key eingeben muss.

      Fangen wir mal an!

      Alles findet hierfür nur im Game Start Event statt.
      Ich poste mal den kompletten Code rein. Was welche Funktion macht, steht dann hinter den // .

      GML-Quellcode

      1. ini_open("Code.ini") // Ini Datei wird geöffnet. *1
      2. if ini_section_exists("Freischaltungscode") && ini_key_exists("Freischaltungscode","Code") // Wenn die Section bzw. der Key "Freischaltung" und "Code" exestiert, gelange man in den nächsten Raum.
      3. {
      4. ini_close() // Ini Datei wird weider geschlossen.
      5. room_goto_next() // Und ab in den nächsten Raum !
      6. }
      7. else // Wenn die Section bzw. der Key aber nicht exestiert, geht es so weiter:
      8. {
      9. str = get_string("Geben Sie den Freischaltungscode ein.","") // Die Variable str ist get_string(...,"")
      10. if str == "www.Amalotia.de" // Wenn str gleich www.Amalotia.de entspricht (Groß-und Kleinschreibung beachten), geht es so weiter:
      11. {
      12. ini_open("Code.ini") // Die ini Datei wird geöffnet. *2
      13. ini_write_string("Freischaltungscode","Code",string(str)) // Ein String wird in der Ini Datei geschreiben, der notwenig für die obere Funktion ist.
      14. ini_close() // Ini Datei wird weider geschlossen.
      15. room_goto_next() // Jetzt kann man in den nächsten Raum.
      16. // Wenn man das Spiel nun neu startet, und die Ini nicht gelöscht oder verändert wurde, tritt die obere Funktion in Kraft.
      17. // Um deutlich zu machen, was die obere Funktion ist, habe ich dies mit *1 gekennzeichnet.
      18. }
      19. }
      20. //*1: Obere Funktion
      21. //*2: Untere Funktion
      Alles anzeigen


      Jetzt 2 Räume erstellen.
      In den ersten Raum packt ihr euer Objekt rein, wo der Code drauf ist.
      In den zweiten Raum könnt ihr etwas Anderes packen, damit ihr seht, ob ihr auch wirklich im 2. Raum seit.

      if str == "www.Amalotia.de" // Wenn str gleich Amalotia.de entspricht (Groß-und Kleinschreibung beachten), geht es so weiter:
      Das steht in meinen Code drin.
      Die Groß- und Kleinschreibung ist dabei wichtig. Bitte achtet dadrauf, um Probleme zu vermeiden.

      Falls ihr weitere Fragen habt, wendet euch an mich oder an andere, die sowas gut können, wovon es sicherlich sehr viele gibt.

      Mit freundlichem Gruß
      icqgamer
      Dateien

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von icqgamer ()

    • Öhm...
      Das bietet überhaupt keinen Schutz.
      Einfach eine ini-Datei mit dem Inhalt

      Quellcode

      1. [Freischaltungscode]
      2. Code = bla
      erstellen, schon ist dein Schutz durchbrochen.
      Du solltest wenigstens den Wert des Code Keys überprüfen.
      fabse64 -> haiyyu
    • Doch, es bietet Schutz.
      Man kann es ja beliebig ändern z.B. in 4L8QNR-99LHÖAP9MN oder so.
      Derjenige, der das Spiel oder das Programm nutzt, kann den Code vorher ja nicht wissen.
      Und dann ist es natürlich auch noch dreifach sicher wegen:
      -Section
      -Key
      -String

      Man müsste alle 3 Sachen exakt richtig eintippen in der Ini Datei, was schwer wäre.

      Mit freundlichem Gruß
      icqgamer
    • Ich denke keiner, der in der Lage ist, Spiele zu machen, die sich kommerziell vermarkten lassen, wird seine Spiele mit ini Dateien schützen. Das ist so ziemlich die schlechteste Methode dafür. Dein Tutorial erklärt höchstens, wie man Dinge in Ini-Dateien schreibt bzw. ausliest, mehr aber auch nicht.
    • ghostrider schrieb:

      Ich denke keiner, der in der Lage ist, Spiele zu machen, die sich kommerziell vermarkten lassen, wird seine Spiele mit ini Dateien schützen.


      Ich habe nicht gepostet, dass man es so machen MUSS bzw. es nur so machen KANN.
      Dieses Tut ist für Anfänger die vielleicht noch kleiner SPiele so schützen wollen o.ä.
      Natürlich ist mir klar, dass das keine so sichere Methode ist.
      Ich woltle es nurmal zur Verfügung stellen, falls danach jemand gesucht hat.

      Mit freundluchem Gruß
      icqgamer :)
    • icqgamer schrieb:

      Und dann ist es natürlich auch noch dreifach sicher wegen:
      -Section
      -Key
      -String

      Man müsste alle 3 Sachen exakt richtig eintippen in der Ini Datei, was schwer wäre.
      Nicht ganz - höchstens zweifach ;)

      GML-Quellcode

      1. ini_open("Code.ini") // Ini Datei wird geöffnet. *1
      2. if ini_section_exists("Freischaltungscode") && ini_key_exists("Freischaltungscode","Code") // Wenn die Section bzw. der Key "Freischaltung" und "Code" exestiert, gelange man in den nächsten Raum.
      3. {
      4. ini_close() // Ini Datei wird weider geschlossen.
      5. room_goto_next() // Und ab in den nächsten Raum !
      6. }


      Hier wird nur überprüft ob die Sektion und der Key Existiert, allerdings wird nicht überprüft ob in dem Key der gewünschte Wert ist.

      Mfg.,
      Metalknight
    • Metalknight schrieb:

      Hier wird nur überprüft ob die Sektion und der Key Existiert, allerdings wird nicht überprüft ob in dem Key der gewünschte Wert ist.


      Gut gedacht, ABER:
      Der Schlüssel, den man eingeben muss, soll nicht überprüft werden.

      GML-Quellcode

      1. str = get_string("Geben Sie den Freischaltungscode ein.","") // Die Variable str ist get_string(...,"")
      2. if str == "www.Amalotia.de" // Wenn str gleich www.Amalotia.de entspricht (Groß-und Kleinschreibung beachten), geht es so weiter:


      Man gibt zuerst den Schlüssel ein und wenn er richtig ist und man das Programm/Spiel zum Beispiel neu startet, gelangt man in den nächsten Raum.
      Der Schlüssel ist nur dazu da, dass man das Programm oder SPiel ersteinmal freischaltet.

      Deswegen acuh 3 Fach sicher, denn man muss ja auch ersteinmal den richtigen Schlüssel eingeben, bevor die Section und der Key überprüft wird. :P

      Mit freundlichem Gruß
      icqgamer
    • Dir ist schon klar, dass jeder Texteditor in der Lage ist, inis zu modifizieren, oder? Man muss nix weiter tun, als die Sections [Freischaltung] und [Code] selber zu erstellen und irgendwas reinzurotzen, und schon ist dein Schutz ausgehebelt - du prüfst nämlich zuerst, ob die Sections existieren und fragst erst im Falle der Nichtexistenz deinen key ab. :para:

      Also sorry, aber Kopierschutz sieht anders aus - und ist für GM-Spiele etwa so sinnvoll wie einen Maschendrahtzaun hochzuziehen, um einen Helikopter aufzuhalten.
    • @Irrenhaus3:
      Ja, man kann das einfach so da rein schreiben.
      Aber es kommt ja drauf an wie die Sections bzw. Keys heißen.
      Das könnte nun ja auch ein Wort mit 50 Zeichen z.B. sein, was so leicht keiner rausbekommen würde.
      Denn derjenige müsste ersteinmal wissen wieviel Zeichen die Sections und die Keys haben und dann auch noch den richtigen key schreiben.

      Mit freundlichem Gruß
      icqgamer
    • Das ist zwar alles richtig und du sagst das auch sicher im guten Glauben, inis seien für Anfänger eine nette Methode, ihre Spiele zu schützen, aber deine Argumentation beinhaltet leider auch einige Fehler.

      1. Es gibt Tools, mit denen es möglich ist, GM-Spiele zu knacken - der Besitz derselben ist allerdings illegal, deswegen werd ich darauf nicht weiter eingehen. Fakt ist aber leider, dass viel zu viele GM-User diese Tools besitzen.
      2. Du sagst, du hättest dieses Tut für Anfänger geschrieben - 80% aller Anfänger kopieren nun aber einfach den Code, der im Tutorial steht. Damit sind alle Spiele, die dein Schutzsystem benutzen, identisch und somit sehr leicht knackbar.
      3. Jede Kopie des gesicherten Spiels wird mit dem selben Key zu knacken sein, es sei denn, dir fällt ein ausreichend schwieriger Keygen-Algorithmus ein, um zufällige Codes zu erzeugen. Solange das aber nicht der Fall ist, werden "Profis" einfach ein einziges Mal den Key kaufen und sich dann fröhlich untereinander die ini weiterreichen. Man braucht ja schließlich immer den haargenau gleichen Text.
      4. Und außerdem ist mir immer noch unklar, warum man GM-Spiele überhaupt schützen sollte. Die GM-Werke, die kommerziell vertrieben werden (hab mal eins gesehen, das mehr gekostet hat als der GM selbst :vogel: ) überragen nur selten die, die du kostenlos kriegst.
    • Hallu :D

      Ja, Irrenhaus, dass sind viele Punkte.
      Zu Punkt 2 würde ich mich aber nocheinmal aüßern wollen:
      DIejenigen, welche den Code kopieren und einfügen, könnten den Code ja im Code ändern.
      Wenn sie das nicht tun, ham se Pech gehabt :P

      Und: Ja, das mit den Inis weitersenden bzw. Code senden sit leider möglich. Damit habe ich mich die letzen Tage besonders den Kopf zerbrochen, wie man das machen könnte.
      Eine Ini Datei ist leider sehr unsicher und ich würde es auch nicht umbedingt empfehlen. Jedoch für " Nicht so gute Spiele " würde sowas ausreichen. ( Auch wenn ich selbst nicht verstehe, warum man ein ganz kleines Spiel sichern muss. )

      Ich werde aber dran arbeiten und vielleicht irgendwann eine bessere Methode anbieten. Bis dahin kann es aber noch dauern, da ich noch eingies lernen muss.

      Mit freundlichem Gruß
      icqgamer :)
    • Die ini Datei kann dann immernoch weitergegeben werden.
      Eine Möglichkeit wäre, dass für jedes Spiel ein eigener
      Schlüssel (z.B. RSA Schlüssel) erzeugt wird und in einer Online
      Datenbank gespeichert wird. Dann ver/entschlüsselt nämlich auch
      jedes Spiel seine ini Datei mit einem anderen Schlüssel und
      weitergeben hilft absolut nichts mehr.
      ___________________________________________________________
      Beware of wild pointers
      ______Hinweis für Allergiker: Kann Spuren von Ironie enthalten_____