Ich entwickle ein einfaches Spiel in swift, aber mit GamePlayer (auf Cydia, ein cheat-engine
like), ich bin in der Lage zu lokalisieren, verfolgen und ändern meine Punktzahl.Swift: Gameplayer Address Tracking verhindern
Ich frage mich, wie kann ich diese Art von Cheats verhindern ... Ich habe versucht, eine neue Instanz des Elements zu schaffen, wenn sie sich ändert, Beispiel:
score = Int(score + 1)
ich auch versucht, die var zurückgesetzt auf Null und neu ordnen sie:
let tmp = score + 1
score = nil
score = tmp
Aber es funktioniert nicht ... Meine erste Frage ist: ist es möglich, die Adresse einer variablen in swift zu ändern? Und wird es Adressverfolgung verhindern?
Meine zweite Frage ist: Eine andere Sache, die funktionieren kann, Codierung meiner Punktzahl, aber ist es die Arbeit wert?
Normalerweise funktioniert "Sicherheit durch Dunkelheit" überhaupt nicht. Aber hier kann es helfen. Ein klassischer Trick besteht darin, für jedes Spiel einen eindeutigen Schlüssel zu generieren. Ändern Sie Ihre Score-Variable nicht direkt, verwenden Sie eine dedizierte Methode, um * eine private Variable zu speichern, in der Sie den Score multipliziert mit diesem geheimen Schlüssel speichern (oder bitshifted oder stringified and mangled oder was auch immer). Wenn Sie die Score-Variable lesen, vergleichen Sie sie immer mit ihrem geheimen Gegenstück, indem Sie die umgekehrte Operation ausführen. Wenn das Ergebnis zur Laufzeit temperiert wurde, wissen Sie es, weil die geheime Variable nicht mehr synchron ist. – Moritz
Okay, ich sehe was du meinst und das kann ziemlich schnell umgesetzt werden! Aber wissen Sie aus meinem Allgemeinwissen, ob es möglich ist, die Adresse einer Variablen schnell zu ändern? – Dliix