Werte im Spiel "verstecken"!?

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

  • Werte im Spiel "verstecken"!?

    Ich stelle mir immer wieder die Frage inwiefern ein gebackenes UE4 Spiel eigentlich decompilierbar oder lesbar ist.
    Bzw. vom Hex-Editor bis zum MEM-Reader kann man natürlich grundsätzlich in alle compilierten Codes hineinschauen und evtl. Werte interpretiren oder mit Glück in Klarschrift erhaschen.

    Wie sieht es da eigentlich mit der Sicherheit aus?
    Kann man in eine UE4 Spiel Werte irgendwie sicher verstecken?
    Sobald ich einen Wert in eine Variable packe, könnte ich mir vorstellen, dass, sobald das Spiel die Variable benutzt, diese auch im RAM zu finden wäre.

    Und was ist mit Algorithmen zur Verschlüsselung?
    Wenn ich mir einen Rechenweg mit vielen Operationen ausdenke, diesen im BP oder C++ in das Spiel einbinde, kann ein guter Cracker diesen Algorythmus später irgendwie aus einem gebackenen Spiel extrahieren?

    Es gibt ja auch nicht nur direkte Variablen, sondern z.B. auch Datentabellen, Kurven und selbt in Audiofiles können Werte gespeichert sein...also stelle ich mal die Abschlussfrage:
    Wenn man jetzt an Seriennummern, Masterkeys und Passwörter im Spiel denkt - wie würdet ihr diese im Spiel am sichersten unterbringen?
    F99
  • man kann aus jedem spiel programm immer alles raus lesen selbst wenn es nur in assembler möglich ist, zb mit "ollydbg" (32bit programme oder games), oder wenn 32 bit zu wenig ist damit "x64dbg"
    das einzige was bisher meinermeinung sinn macht ist nen anticheat mit kernel lvl zu erstellen der nach dll injectionen und ram manipulationen sucht und dann noch das game online halten sprich mit nem server abgleichen oder gleich das game account gebunden machen und wenn was eigenartig ist account sperre fertig

    achja das cheat programm Helios Framework 3 bootet mit windows mit das müsste theoretisch kernel lvl sein bin mir aber gerade nicht sicher jeden fals wird es von keinem anticheat am markt bisher endeckt nichtmal von Battleye
  • Dafür gibts ja die Obfuskation. Man kann nicht verhindern das jemand ein Programm ausliest. Aber man kann es für Menschen unlesbar machen. Naja, zumindest so das es sich nicht lohnt.
    UE4 kann ein Spiel mit AES verschlüsseln. Gibt irgendwo eine Variable die auch AES *dead* heißt und dort kann man nen Schlüssel setzten. Mit irgend eine Parameter beim Kompilieren wird das Spiel dann verschlüsselt. Habs selber noch nicht probiert. Der Schlüssel dürfte aber nicht schwer zu finden sein. UE4 ist ja auch noch Open Source.

    Deine Beispiele:
    Seriennummern: Warum sollte ich diese verstecken wollen? Die muss man doch sowieso abtippen usw..
    Passwörter: Die werden gewöhnlich gesalzen oder gepfeffert. :D de.wikipedia.org/wiki/Salt_(Kryptologie)
    Masterkey: Wenn möglich nicht speichern. de.wikipedia.org/wiki/Diffie-Hellman-Schl%C3%BCsselaustausch Ansonsten versuchen diesen zu erzeugen im Code. Also bestimmte Dateien zählen, ihre Größe oder sowas und daraus nen Schlüssel erstellen.

    Falls es um Cheater in einem Multiplayer Spiel geht dann hat das alles hier aber keine Wirkung. Da hilft nur möglichst viel auf dem Server berechnen und ansonsten erkennen und bannen. Verhindern ist nicht möglich.
    Meine UE4 Plugins gibt es hier.
  • Danke für eure Antworten.

    Server bringen leider nicht viel, da man auch locker einen virtuellen Fake-Server starten kann, der den offiziellen einfach emuliert.
    Und schon "denkt" das Spiel es sei zum offiziellen Server verbunden.

    Ich dachte eher an z.B. Seriennummern.
    Die Berechnung der Seriennummer muss ja im Spiel enthalten sein damit das Spiel die eingegebene Nummer überhaupt validieren kann.
    Und diese Berechnung gilt es gut zu verstecken oder irgendwie nicht lesbar unterzubringen.
    F99
  • Franz99 schrieb:

    Server bringen leider nicht viel, da man auch locker einen virtuellen Fake-Server starten kann, der den offiziellen einfach emuliert.
    Und schon "denkt" das Spiel es sei zum offiziellen Server verbunden.
    solang das spiel nicht auf den "fake server" zeigt wie soll da das spiel was anderes denken als einprogrammiert wurde?
    und wenn es bei nem multiplayer game auf nen "fake server" zeigt sind die spieler ja sowieso nicht mehr im selben offiziellen server sondern am "fake server"


    Franz99 schrieb:

    Ich dachte eher an z.B. Seriennummern.
    Die Berechnung der Seriennummer muss ja im Spiel enthalten sein damit das Spiel die eingegebene Nummer überhaupt validieren kann.
    Und diese Berechnung gilt es gut zu verstecken oder irgendwie nicht lesbar unterzubringen.
    für nen singelplayer game ok,
    da brauchste aber auch nicht wirklich was verschlüsseln denn früher oder später gibt es sowieso nen keygen.
    einzige was du machen kannst ist es zu Enkrypten.

    ansonsten für nen multiplayer game mit Seriennummer kannst das vom server abgleichen lassen mit dem account nur mal als beispiel
  • Absolut sicher verstecken geht nicht. Aber man kann den Wert durch einen komplizierten Vorgang verschiedener Funktionen, Kodierungen und Verschlüsselungen verbergen, der gewünschte Wert steht also zuerst nirgendwo sondern wird durch ein Haufen von Funktionen erst generiert bzw. der Zweck dieses Wertes wird durch eine Reihe von Funktionen erzeugt.
    So reicht es für den Angreifer nicht irgendeine einzige Zahl zu ändern, man wird so gezwungen zuerst den Code in Assembler zu studieren, genau zu schauen welche Funktion was macht. Ist es kompliziert und aufwendig genug schreckt es den einen oder anderen Angreifer ab.

    Soll der Wert möglichst durch Angreifer nicht verändert werden, kann es helfen den Ablauf des Spiels immer wieder von dem richtigen Wert abhängig zu machen. Irgendwelche Vorgänge im Spiel könnten im Hintergrund den Wert überprüfen, etwa eine Prüfsumme erstellen.
    Hat der Angreifer sämtliche solcher Checks aus dem Code nicht entfernt oder modifiziert stürzt das Spiel ab oder lässt sich nicht weiter spielen weil etwa eine Tür wie ein bug sich nicht öffnen lässt. Damit erhöht man auch nochmal den Aufwand für die Angreifer.

    Bei einer ausreichenden Menge an Motivation und Anzahl der Angreifer bringt das aber alles nichts.
  • Ui... ein paar Tage nicht da und schon türmen sich die Antworten. :D
    Danke dafür! :)

    @LucyDemoon
    Doch doch.. ein Server zu faken ist ultra leicht.
    Das Spiel sendet und empfängt Daten zu einer oder mehrer URLs.
    Diese kann man locker abfangen.
    Ein Webserver kann nun mit entsprechenden Registry-Einträgen die Domains zu den Fake-Server umbiegen.
    Es wird weiterhin auf eine bestimmte URL gesendet oder empfangen, aber der Webserver bzw. Weindows selbst fängt die Adresse vorher ab und routet zb. auf localhost ectpp.
    Und selbst die URLs selbst die das Spiel sendet kann man einfach einfach vorher ändern bevor etwas ins Netz geht.
    Dafür hat Windows selbst schon einige Funktionen.
    Eigentlich zur Sicherheit gedacht kann man das aber auch zu Softwarecracks missbrauchen.

    @Socke
    Mir geht es darum so gut wie möglich gecrackte Raubkopien zu verhindern.
    Bzw. es eben so schwer wie möglich zu machen.
    Dass es nicht möglich ist weiß man allgemein - sonst wären alle Spiele auf dem Markt sicher.
    Aber es gilt den Crackern es so schwer zu machen, dass sie gar kein Bock aufs cracken haben.
    Zumindest wenn es nicht gerade Blockbuster-Spiele sind. ;)

    @VieleKekse
    Na die Theorie ist mir auch bekannt.
    Das ist ja der Sinn meines Threads. :)
    Ich sucher aber explizite Lösungsvorschläge.
    Das verstecken in Audiofiles finde ich immer noch recht attraktiv - da kommt so schnell keiner drauf.

    @Dj EKI
    Wie heißt denn das Plugin?
    F99
  • Also das mit dem Server Faken ist Unsinn. Du kannst ja gerne mal ein paar Posts hier im Forum mit meinem Account machen. Bin gespannt wie du dich zwischen mich und den Server schaltetest. Kannst auch gerne die Theorie beschreiben wie du dich zwischen mich und den Webserver schaltest. Selbst ohne SSL was hier läuft.

    Da es hier um den Kopierschutz geht nur mal so. Publisher geben Millionen aus und freuen sich wenn das Spiel eine Woche lang nicht kopiert werden kann. Du kannst eigentich nicht viel machen. Nutze den Kopierschutz deiner Vertriebsplattform wie z. B. Steam. Nutze die AES Verschlüsselung von UE4. Egal was du sonst machst. Du verzögerst den Crack um ein paar Stunden wen du glück hast. Sinnlos.
    Meine UE4 Plugins gibt es hier.
  • Franz99 schrieb:

    @LucyDemoon
    Doch doch.. ein Server zu faken ist ultra leicht.
    Das Spiel sendet und empfängt Daten zu einer oder mehrer URLs.
    Diese kann man locker abfangen.
    Ein Webserver kann nun mit entsprechenden Registry-Einträgen die Domains zu den Fake-Server umbiegen.
    Es wird weiterhin auf eine bestimmte URL gesendet oder empfangen, aber der Webserver bzw. Weindows selbst fängt die Adresse vorher ab und routet zb. auf localhost ectpp.
    Und selbst die URLs selbst die das Spiel sendet kann man einfach einfach vorher ändern bevor etwas ins Netz geht.
    Dafür hat Windows selbst schon einige Funktionen.
    Eigentlich zur Sicherheit gedacht kann man das aber auch zu Softwarecracks missbrauchen.
    voll vergessen windows basiert ja auf dem regestry system XD
    aber jeder der das game so baut das der server in der regestry steht dem ist echt nimmer zu helfen XD

    aber 99,9999% aller spiele haben die IPs im game selbst bzw im compilierten programm und das ab und zu encryptet, einzige was mir gerade einfällt ist WoW das hat den server in ner datei stehen im klartext


    Socke schrieb:

    Bin gespannt wie du dich zwischen mich und den Server schaltetest. Kannst auch gerne die Theorie beschreiben wie du dich zwischen mich und den Webserver schaltest.
    ich auch ^^
    beim Wlan ist es einfach oder im Lan

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

  • Egal worauf das System basiert. Wie will er bitte in der Registry auf meinem Pc rumfummeln? Er kann weder bei mir noch sonst irgendwo was verstellen wo er keinen Zugriff drauf hat. Er kann auch nur Datenpakete zwischen seinem eigenen PC und dem Server auslesen. Um dazwischen zu kommen muss man schon einen Hack/Trojaner anwenden oder die NSA sein.
    Meine UE4 Plugins gibt es hier.
  • Nennt sich Trojaner. Wenn du es schaffst mir diesen unterzujubeln (E-Mail Anhang, Warez Download) und am Vierenscanner und der Firewall vorbeikommst, bist du schon am Ziel. Wozu sollte man jetzt noch einen Server Faken? So etwas macht keiner.

    Wenn du auf einen fremden PC kommst dann verschlüsselst du den und erpresst den Besitzer.

    Und einfach etwas auf irgendwelche PCs hochladen geht nicht. Das Internet wäre dann ja unbrauchbar.
    Meine UE4 Plugins gibt es hier.

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

  • Ihr vergesst ganz, dass das gecrackte Spiel, was man ganz normal installiert, ja bereits alles umbiegen kann.
    Du installierst es und stimmst vorher allem dadurch zu - da können bereits hundert Viren enthalten sein.
    Wo ist denn da das Problem?
    Genauso funktioniert es ja.
    Es gibt ne Menge Software, die eigentlich mit dem Server telefonieren, um sich gegen Raubkopien zu schützen.
    Ob GTA oder 3DSMAX - um nur 2 simple Beispiele zu nennen - gecrackt liefern die einen eigenen kleinen Server mit, der den offiziellen quasi offline simuliert bzw. das online-Lizensing System austrickst.
    Und man geht auch davon aus, dass in den meisten gecrackten Spielen Trojaner usw. enthalten sind.
    Du führst doch die Installations-EXE aus, wenn du das gecrackte Spiel installierst.
    Da kann man alles mit dem Rechner anstellen - sogar die Platte formatieren.
    Man kann alles in die Installationsroutine des Spiels einbauen ohne das man was davon merkt.
    F99
Unreal®, Unreal Engine, the circle-U logo and the Powered by Unreal Engine logo are trademarks or registered trademarks of Epic Games, Inc. in the United States and elsewhere.