Welche Möglichkeiten gibt es, um Spieldaten sicher zu speichern? Ich interessiere mich für speziell auf C ++ zugeschnittene Lösungen.
Ich suche etwas, das schnell und einfach zu bedienen ist. Ich mache mir nur Sorgen um das Speichern einfacher Informationen wie
Welche Ebenen sind und sind nicht freigeschaltet
Die Punktzahl des Benutzers für jedes Level
Ich bin wieder neugierig zu wissen, was da draußen zu verwenden ist, und welche guten Bibliotheken mir nette, sichere Spieledatendateien geben, mit denen der durchschnittliche Spieler nicht herumspielen kann.
Ich habe das hier gerade gefunden , was sehr schön aussieht, aber es wäre großartig, wenn ich ein paar Meinungen zu potenziellen anderen Bibliotheken / Optionen da draußen hätte.
Antworten:
Nehmen wir zunächst an, Sie haben eine sehr einfache Speicherdatei und können eine Textdatei verwenden.
Eine der einfachsten Ideen ist die Verwendung eines Zeichenfolgenschlüssels zum Sperren / Entsperren von Daten:
aber nach ein wenig google suche habe ich diese links gefunden, die nützlich sein könnten:
Bearbeiten:
Basierend darauf, dass signiertes Zeichen "Undefiniertes Verhalten" ist, wie von @ v.oddou erwähnt, führt die Verwendung von XOR oder das Umwandeln in nicht signiertes Zeichen zu sichererem / plattformübergreifenderem Code. etwas wie das:
quelle
XOR
anstelle von Inkrementieren / Dekrementieren, da Sie möglicherweise beschädigte Daten erhalten, wenn Sie die Grenzen des Datentyps überschreiten, mit dem Sie es zu tun haben (char
nehme ich an)Nichts kann als sicherer Client betrachtet werden. wer es dir sagt, lügt.
Sie können eine beliebige Verschlüsselungs- und Verschlüsselungsmethode verwenden. Da der Client diese jedoch auch entschlüsseln kann und der Benutzer Zugriff auf den Client selbst hat, kann er auf den Entschlüsselungsschlüssel / -algorithmus zugreifen, wenn er über ausreichende Ressourcen verfügt.
Sie können nur jemandem Ärgernisse zufügen, der bereit ist, sie zu knacken, aber wenn genügend Zeit zur Verfügung steht , wird sie geknackt , und Sie können nichts dagegen tun.
quelle
Sie können Ihre gespeicherte Datei definitiv unverschlüsselt lassen, aber eine Prüfsumme hinzufügen, die anhand aller Werte berechnet wird, die Sie "schützen" möchten.
Der Cracker wäre daher in der Lage, das Hashing (das Sie natürlich mit geeignetem Salz verwenden werden) erneut zu produzieren, und hat daher eine glückliche Zeit, zu versuchen, es erneut zu produzieren.
Dies wäre immer noch nicht 100% sicher, aber wahrscheinlich die beste zeiteffektive Lösung.
quelle
Dies lieferte einige einfache XOR-Verschlüsselung:
Und wie man es benutzt:
Die Ausgabe dieses Codes lautet wie folgt:
quelle
Hier sind ein paar Programme (sowieso kostenlose), die Ihnen helfen könnten. Beide kombinieren im Grunde alle Ihre Ressourcen in einer einzigen Exe.
NBinder , jetzt ein kommerzielles Produkt, ist eine alte, aber funktionale Version.
Enigma Virtual Box , ein weiteres Tool mit ähnlichen Funktionen.
quelle