Game Maker durch Cheat Engine beinflussbar

  • GM 8

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

  • Game Maker durch Cheat Engine beinflussbar

    Ich hab heute einmal Cheat Engine auf meine Spiele gehetzt. Das Ergebnis ist leider sehr nüchtern. Nicht nur, dass die ganzen Sachen unverschlüsselt dort zu finden sind, sonder auch bei allen Spielen die selbe Cheat Engine "Adresse" haben. Kann man so etwas irgendwie verhindern ect. ??

    MFG Cheesi
    MFG Cheesi
  • Selbst bei so ziemlich allen kommerziellen Games kann man mit Leichtigkeit die Variablen auslesen und verändern.
    Wenn es um Onlinehighscores geht musste dir halt besondere Sicherheitsmaßnahmen einfallen lassen damit Änderungen an Variablenwerte im Ram erkannt werden.
  • Ich mache es so: Ich erstelle eine Variable proof und eine prescore.
    prescore ist der score im letzten Step.
    proof wird bei einer scoreänderung vom Spiel auf 1 gesetzt.
    Nun wird so gecheckt:
    End step:

    GML-Quellcode

    1. if score = prescore && proof = 1 //Checkt, ob die Variable proof verändert wurde, ohne das der score verändert hat.
    2. {
    3. show_message("Das Siel wurde beeinflusst!")
    4. end_game()//Beendet sich
    5. }
    6. if prescore != score && proof = 1 //Checkt ob eine Änderung im score statt gefunden hat und ob diese vom Spiel gemacht wurde.
    7. {
    8. proof = 0 //Der score wurde vom Spiel verändert.
    9. }
    10. else
    11. {
    12. show_message("Das Siel wurde beeinflusst!")
    13. end_game()//Beendet sich
    14. }
    Alles anzeigen


    Diese Methode is 100%ig sicher, da weder Cheat Engine noch ein anderes Programm das ich kenne
    zwei Varibalen so schnell verändern kann, dass das Spiel es nicht mitbekommt.
    Mit CE ist hier ein Hacken des Scores selbst bei 1 FPS unmöglich.^^
    Dies geht selbstverständlich auch mit anderen Variablen. Außerdem nehme ich generell für
    den Score nicht die Variable score. =)

    Mfg
    Diesel
  • Wetten wenn du ein beispiel machst und ich poste es im CE-Forum dauert es nur ein paar stunden bis es jemand schaft? ;)
    zum beispiel könnte man das ganze ding disassemblen und die pointer manipulieren

    €dit: und bei Online-spelen frägt man einfach ab was das spiel ans internet sendet und was es empfängt und sendet manipulierte daten

    Wie gesagt: Es gibt keine sichere Methode macht einfach spiele bei denen keiner cheaten will
  • gib befor du das spiel published einfach allen varibalen komische namen (wie bei minecraft :D )
    zb. nummern und buchstaben in reihenfolgen die keinen sinn ergeben (oder falsche namen, zb score zu damage).
    So kann man zwar variablen beeinflussen, doch es ist unsicher, weil man nicht weiß was sie bedeuten (und vieleicht auch ein paar dummy variablen einbauen die das spiel beenden).
  • Leute, seit mal etwas netter zueinander.
    Hellfish, normalerweise sucht man bei solchen Programmen nach Variablen mit dem Wert. D.h., wenn du zb. eine Variable money = 1400; hast, dann kannst du bei solch einem Programm nach dem Wert 1400 suchen, und wenn es nur eine bzw. zwei mit diesem Wert gibt, kann sie heißen wie sie will.
    Wenn du das den Cheat Engine-Usern nicht so leicht machen willst, kannst du dir eine Funktion basteln, die spezifische Matheoperationen mit deiner Variable anstellt. Sowas könnte zb. so aussehen:

    GML-Quellcode

    1. //Natürlich könnten erfahrene Benutzer von solchen Programmen versuchen, den Script auszulesen, deswegen ist dies eher unsicher.
    2. //realEncrypt (value)
    3. return (argument0 * sqr (argument0)) * 45 / 11 + 8;
    4. //---
    5. //realDecrypt (value)
    6. return (argument0 / sqr (argument0)) / 45 * 11 - 8;
    7. //(Ich bin mir nicht sicher, ob es so richtig funktioniert, müsstest du vielleicht selber überprüfen.)

    Desweiteren: string_format(val,tot,dec) Turns val into a string using your own format: tot indicates the total number of places and dec indicates the number of decimal places. Habe das noch nie benutzt, aber sollte vielleicht dazu passen.
    Eine wildere Variante wäre eine Verschlüsselung mit einem Key, der jeden Step einen anderen Wert hat. Oder gleich MD5 oder so einbauen.
  • Leute, ist doch so verdammt einfach das Problem zu umgehen. Es gibt etwa folgende zwei einfache Lösungen:
    a) man zeigt die jeweilige Variable nicht - alternativ kann man als Darstellung etwa Balken nehmen, wo Mr.Haxxor den echten Wert dahinter kaum entziffern kann
    b) die offensichtliche Variable ist nicht die, die wirklich vom Spiel gehandhabt wird - der echte Score, der von der Spielmechanik genutzt wird, könnte etwa ein Vielfaches oder ein Bruch des dargestellten Scores sein (dabei kann man sich dann sogar fiese Strafen erlauben falls die offensichtliche Variable plötzlich nicht mehr stimmt - etwa ein böses Bild einblenden oder den jeweiligen User über ein File oder einen Registry-Eintrag als Cheater brandmarken und das Spiel bei ihm nicht mehr funktionieren lassen)
    Mit einem kleinen bißchen Fantase lässt sich fast jedes Problem lösen. :P Am schlimmsten ist beim GM sowieso immer noch die Sache mit dem Dekompilieren der Exe-Files. Und wie oben schon jemand gesagt hat: auch kommerzielle Spiele sind oft völlig ungeschützt was RAM-Hacks & Co. angeht. :P

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

  • 1) Danke für die viele Posts und Hilfen ich werde sie mir mal ansehen.
    2) Online-Highscore: Genau das ist ja das Problem. Das Ding ist mit Bl@ckSp@rck's OHS verbunden =(

    Edit: Md5 gibts im GM auch??

    MFG Cheesi
    MFG Cheesi

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

  • F4LL0UT schrieb:

    b) die offensichtliche Variable ist nicht die, die wirklich vom Spiel gehandhabt wird - der echte Score, der von der Spielmechanik genutzt wird, könnte etwa ein Vielfaches oder ein Bruch des dargestellten Scores sein (dabei kann man sich dann sogar fiese Strafen erlauben falls die offensichtliche Variable plötzlich nicht mehr stimmt - etwa ein böses Bild einblenden oder den jeweiligen User über ein File oder einen Registry-Eintrag als Cheater brandmarken und das Spiel bei ihm nicht mehr funktionieren lassen)
    Mit einem kleinen bißchen Fantase lässt sich fast jedes Problem lösen. :P Am schlimmsten ist beim GM sowieso immer noch die Sache mit dem Dekompilieren der Exe-Files. Und wie oben schon jemand gesagt hat: auch kommerzielle Spiele sind oft völlig ungeschützt was RAM-Hacks & Co. angeht. :P


    In diesem fall würde der gelernte Cheater einfach nach veränderten / erhöhten / erniedrigten variablen suchen...

    Ich habe mich einmal wegen eigenen spielen intensiever damit beschäftigt, und kann euch sagen:
    Es gibt absolut keine sichere Methode einen Online-Highscore vom Betrug zu sichern.
    Macht lieber gute Spiele als euch mit solchen sachen rumzuplagen

    PS: neuer Smiley :troll: ?
  • florpp schrieb:

    In diesem fall würde der gelernte Cheater einfach nach veränderten / erhöhten / erniedrigten variablen suchen...

    Ich habe mich einmal wegen eigenen spielen intensiever damit beschäftigt, und kann euch sagen:
    Es gibt absolut keine sichere Methode einen Online-Highscore vom Betrug zu sichern.
    Macht lieber gute Spiele als euch mit solchen sachen rumzuplagen

    PS: neuer Smiley :troll: ?
    Deshalb der Trick mit dem Blockieren des Spiels falls ein Mal der falsche Wert verändert wird. Bis der Cheater checkt warum das Spiel nicht mehr läuft, hat er keinen Bock mehr daran zu fuchteln. :P
  • Mr. Diesel schrieb:

    Diese Methode is 100%ig sicher, da weder Cheat Engine noch ein anderes Programm das ich kenne
    zwei Varibalen so schnell verändern kann, dass das Spiel es nicht mitbekommt.
    Mit CE ist hier ein Hacken des Scores selbst bei 1 FPS unmöglich.^^
    Dies geht selbstverständlich auch mit anderen Variablen. Außerdem nehme ich generell für
    den Score nicht die Variable score. =)
    Und wie sieht das ganze mit einer Pause-Funktion aus??
    MFG Cheesi
  • Benutzer online 1

    1 Besucher