Levelbasiertes Spiel: Sicherheit ?

Mujahiddin

Top Contributor
Guten Morgen, alle miteinander!
Es geht hierbei um ein Spiel, welches auf Level basiert ist, man also bei bestimmtem Level bestimmte Features freischalten kann. Dieser Level ist lediglich ein Integer-Wert, der, wenn notwendig, abgefragt wird und somit die freigeschalteten Sachen angezeigt werden und regelmäßig gespeichert wird.
Nun ist die Frage, ob es mit der Sicherheit gut bestellt ist. Es handelt sich hierbei schließlich nur um einen Integer-Wert - ich könnte mir vorstellen, dass es ein Leichtes wäre, mittels Mini-Hacking-Tool diesen Wert auf den höchsten Level-Wert zu setzen, womit alles freigeschaltet wäre. Dies ist aber nicht Sinn und Zweck der Sache und soll mit allen möglichen Mitteln verhindert werden.
Ich habe mir dazu schon einige Gedanken gemacht, herausgekommen ist Folgendes:
Dieses Spiel soll auch Statistiken enthalten, also welches Level man wann erreicht hat, wie lange man dafür gebraucht hat - und dafür gibt es verschiedene Vector<Object>-Objekte. Möglich wäre es, dass aus diesen Vektoren die Länge (vector.size()) ausgelesen wird, welche auch den Level repräsentieren würde. Die Frage ist nur, ist das sicherer? Es macht ja einen Unterschied, ob man einen Integer-Wert von 1 auf 99 setzt oder ob man einem Vektor 99 Objekte hinzufügt, um seinen gewünschten Level zu erreichen. Irre ich mich da? Ist das immer noch nicht sicher genug? Was wäre besser?
Mit freundlichen Grüßen,
Mujahiddin
 
Zuletzt bearbeitet:

madboy

Top Contributor
soll mit allen möglichen Mitteln verhindert werden
Verwende C/C++/Assembler. Lässt sich nicht so einfach dekompilieren wie Java.
Speichere den Level-Stand eines Spielers auf einem Server. Übertragung natürlich verschlüsselt.
Verwende eine kommerzielle Lösung zum Verschlüsseln deines Codes (habe mal irgendwo gelesen dass es so was gibt ;-) )

Jetzt bist du auf der sichersten Seite die mir spontan einfällt. Alternative: such dir einen Spielehersteller, biete dem einen Haufen Geld und dir wird bestimmt geholfen. Spielehersteller haben da Erfahrung.

Ich würde dir allerdings raten, zu überlegen ob sich das auch lohnt. Wie schlimm ist es wirklich wenn jemand betrügt und sich höhere Levels freischalten lässt? Verlierst du dadurch Geld? Falls nicht, macht sich jemand seinen Spielspaß kaputt und das war's auch schon :)
 

Mujahiddin

Top Contributor
Meinst du, ich soll das ganze Spiel in C/C++/Assembler umschreiben? Das wäre ein viel zu großer Aufwand.
Einen Server will ich bereits basteln, nur fehlt momentan noch der Webspace und das dazugehörige Know-how. Zudem will ich nicht, dass das Programm nur online läuft, es soll auch offline laufen können - und das Level soll auch offline nicht verändert werden können.
Die Frage ist nur, wie ich das verschlüssle, das sagt mir jetzt recht wenig.
Und eine Firma frage ich sicherlich nicht, ich mach das ja aus Hobby und will das Spiel dann eventuell unter einige Leute bringen - und ich will nicht, dass sich die Mühe, die ich mir mit den Levels und den Freischalt-Aktionen gegeben habe, für die Katz war, bloß weil einer herausfindet, dass man nur ne Zahl auf 99 setzen muss und das dann an die große Glocke hängt. Der Integer wird ja im Speicher festgehalten mittels "int level = xyz" - somit könnte man ihn doch jederzeit ändern, oder gehe ich mit meiner Annahme fehl?
Mit freundlichen Grüßen
 

madboy

Top Contributor
Deine Annahme stimmt. Es ist relativ einfach möglich, einen int-Wert im laufenden Betrieb zu ändern.
Worauf ich eigentlich hinaus wollte:
Du hast geschrieben, du willst "mit allen möglichen Mitteln" verhindern dass jemand sich am Level-Stand zu schaffen macht. Eben diese "alle möglichen Mittel" habe ich aufgezählt so weit sie mir eingefallen sind.

Noch mal: was passiert denn schlimmstenfalls wenn jemand das Level verändern kann? Hast du nur ein ungutes Gefühl dabei oder richtige Argumente? Oder willst du einfach lernen, wie du eine gewisse Sicherheit erreichen kannst?

Falls du nur ein ungutes Gefühlt hast, frage dich: wie viele Leute werden dein Spiel spielen? Wie viele davon haben überhaupt Interesse am Cheaten? Wie viele davon können ein .jar dekompilieren? Wie viele mit einem Debugger umgehen?

Willst du lernen, wie du Sicherheit erreichen kannst: versuche mal, dein Spiel zu manipulieren. Dann baue Vorkehrungen dagegen ein und versuche es wieder usw.
 

Mujahiddin

Top Contributor
Ich habe nicht viel Ahnung, wie ich das Spiel von Außen manipulieren sollte, sprich: nur Java-Kenntnisse, in C# und C++ bin ich noch kaum - gar nicht bewandert. Aber das hört sich sehr gut an, wüsstest du, wie ich mein Spiel manipulieren könnte? (Ich hatte sowieso vor, C# (als "Umstieg" von Java) und ggf. auch C++ zu lernen, aber ich habe keinen Anhaltspunkt, wo ich irgendwie in die Richtung gerate. Von 0 anfangen ist auch nicht das Wahre, ich kann Java ja sehr gut und sehr vieles ist ähnlich.)
Es ist in erster Linie ein ungutes Gefühl, wenn man es so bezeichnen will. Die höheren Level sind recht schwer zu erlangen und die Mühe für mein Programmieren soll nicht durch eine kleine Zahländerung zunichte gemacht werden. Dekompilieren / Hacken / Programmieren können unter den Leuten, die mein Ziel sein sollen, soweit ich weiß, niemand - aber ich bin mir nicht ganz sicher. Jedoch weiß ich nicht, ob sich im weiteren Verlauf auch noch andere dafür interessieren werden, von denen ich nicht weiß, ob sie diese Sachen können, und ihnen würde ich es auch gerne zukommen lassen.
Ferner will ich eine Top-List (auf einem Server) erstellen, in der sich jeder mit seinen Fortschritten / Statistiken eintragen kann, und wenn irgendwelche Pfuscher mit unlauteren Mitteln ein hohes Level erreichen, so wäre das keineswegs tolerierbar und unfair den anderen gegenüber.
Wie dem auch sei. Mich würde das sehr interessieren, wie ich auf mein Spiel zugreife und Sachen verändere und danach Maßnahmen dagegen ergreife. Wäre sicherlich informativ / belehrend und überaus interessant.
 

XHelp

Top Contributor
Blizzard kann sich über solche Dinge gedanken machen, aber hier sind die Fehl am Platz. Alles kann irgendwie manipuliert werden. Leicht oder weniger leicht ist erstmal nebensächlich.
Du kannst ja ein paar simple Vorkehrungen treffen, mehr aber auch nicht. Wenn du auf Level 1 bist, dann musst du ja nicht zwingend "1" speichern, sondern irgendwas lustig verändertes/verschlüsseltes. Dann kannst du es noch mal anders verschlüsseln und woanders abspeichern. Dann kannst du die Werte ständig vergleichen. Dann musst du auch dafür sorgen, dass man an den Quelltext nicht rankommen kann... Und im Endeffekt wirst du 99% der Entwicklungszeit mit sinnlosen Sachen verbringen.
Aber das wird alles nichts bringen, wenn man es drauf anlegt.
 

Empire Phoenix

Top Contributor
Einfache regel, never trust the client
-> alles was auf nicht von dir controllierten rechner läuft kann manipuliert werden und du kannst praktisch wenig dagegen tun.
Was du tun kannst ist lediglich den aufwand erhöhen, bis er auf einem niveau ist, wo die meisten keine Lust mehr dazu haben.
sobald das game decompiliert ist wars dass dann aber auch damit.

Soweit ichw eiß gibts noch (kommerzielle) bytecode verschlüsslungen ect. wie sicher das ist sei dahingestellt, man kann ja die JVM(oder den classloader) manipulieren, spätestens dann bekommt man das ganze entschlüsselt zu sehen (wie sollte sie auch sonst laufen).
 

XHelp

Top Contributor
Auch wenn man den Code verschlüsselt muss man den echten Code früher oder später ausführen. Und dann kommt ein böser Bube mit softice und alles ist hin. Wobei z.B. Skype ziemlich allergisch auf softice reagiert, aber auch das lässt sich ändern.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Server für Spiel aufsetzen, was Shutdown ist Spiele- und Multimedia-Programmierung 3
xFearofdarkness Feinde überlappen sich in Java Spiel Spiele- und Multimedia-Programmierung 3
ItundMathe1994 TicTacToe Spiel programmieren Spiele- und Multimedia-Programmierung 2
JEP1 Hilfe bei Spiel Spiele- und Multimedia-Programmierung 1
P Pokemon Spiel Funktioniert nicht ? Spiele- und Multimedia-Programmierung 3
Leon.tr3x Mein erstes Programm/Spiel Spiele- und Multimedia-Programmierung 10
O Texas Hold'em Poker als Online-Spiel mit Freunden Spiele- und Multimedia-Programmierung 5
Drachenbauer Speicher-Tool für ein Spiel schreiben Spiele- und Multimedia-Programmierung 13
M Spiel Mühle-Programmierung Java Spiele- und Multimedia-Programmierung 9
Excess Spiel abzugeben Spiele- und Multimedia-Programmierung 1
I Superhelden - Spiel Spiele- und Multimedia-Programmierung 14
E Hauptmenü und Spiel ???? Spiele- und Multimedia-Programmierung 2
L Sound in Java Spiel Spiele- und Multimedia-Programmierung 5
R Interaktives Spiel Spiele- und Multimedia-Programmierung 5
L Spiel im Editor testen Spiele- und Multimedia-Programmierung 4
Jackii dispatchUncaughtException in Quiz Spiel mit GUI Layout Spiele- und Multimedia-Programmierung 6
D Textbasiertes Spiel Spiele- und Multimedia-Programmierung 8
K Android Spiel Programmieren Spiele- und Multimedia-Programmierung 6
L BrickBreaker Spiel Spiele- und Multimedia-Programmierung 3
A Spiel Figur ansprechen und bewegen Spiele- und Multimedia-Programmierung 3
it_is_all Dialogbox im Spiel - Text in Blöcke aufteilen Spiele- und Multimedia-Programmierung 4
F Koordinieren und Essen von Snake - Spiel Spiele- und Multimedia-Programmierung 14
G Entity Verwaltung in einem 2D Spiel Spiele- und Multimedia-Programmierung 1
E Möchte Spiel Programmieren Spiele- und Multimedia-Programmierung 7
S Connect6 Spiel - Code in ei Spiele- und Multimedia-Programmierung 2
A Spiel nach Abfrage beenden oder neustarten Spiele- und Multimedia-Programmierung 1
G Welten Generierung 2D Spiel Spiele- und Multimedia-Programmierung 4
G Java 2D Spiel mit LWJGL verbinden Spiele- und Multimedia-Programmierung 1
N Problem mit 2D Spiel Spiele- und Multimedia-Programmierung 17
T Probleme bei "Pixel-Fighting"-Spiel: Unausgewogene Mannschaften??? Spiele- und Multimedia-Programmierung 4
R Pong Spiel Problem Spiele- und Multimedia-Programmierung 1
L Coordinate Space JavaFX 2d Spiel Spiele- und Multimedia-Programmierung 0
C Vier Gewinnt Spiel Programmiertipp Spiele- und Multimedia-Programmierung 11
N Jump and run Spiel - wo anfangen / weitermachen? Spiele- und Multimedia-Programmierung 11
K Spiel zum zuordnen von Dienstgraden und Dienstgradabzeichen Spiele- und Multimedia-Programmierung 5
M Textbasiertes Spiel programmieren Spiele- und Multimedia-Programmierung 4
T 2d-Spiel Licht Spiele- und Multimedia-Programmierung 5
S Jump 'n' Run-Spiel Kollisionserkennung Spiele- und Multimedia-Programmierung 3
T Spiel rendern Spiele- und Multimedia-Programmierung 2
Grevak Sounds im Spiel Spiele- und Multimedia-Programmierung 5
B Fehlerhafte Mob Bewegungen in Tower Defense Spiel Spiele- und Multimedia-Programmierung 2
F Spiel ähnlich wie SimCity/o.ä programmieren Spiele- und Multimedia-Programmierung 5
X Erklärung zu einem Tic Tac Toe Spiel Spiele- und Multimedia-Programmierung 1
I Spectator Modus für Spiel ähnlich zu Terraria Spiele- und Multimedia-Programmierung 8
I Textbasiertes Spiel - Umsetzungsfrage & Schleifen Problem Spiele- und Multimedia-Programmierung 26
M Kollisions abfrage bei 3D spiel? Spiele- und Multimedia-Programmierung 12
D JAVA Basiertes Spiel aus dem Internet in eigenem Client laden Spiele- und Multimedia-Programmierung 1
P [Spiel]Welche Bilder sind gleich Spiele- und Multimedia-Programmierung 2
E GUI zum Spiel hinzufügen Spiele- und Multimedia-Programmierung 19
S 2D Spiel - Physics Spiele- und Multimedia-Programmierung 16
S 2D Spiel "Der Sprung" Spiele- und Multimedia-Programmierung 7
A 2D Spiel ohne Tiles Spiele- und Multimedia-Programmierung 10
V welche vorgehensweise beforzieht ihr bei einfachem Quizz Spiel ? Spiele- und Multimedia-Programmierung 4
S Quaxli's Heli Spiel läuft nicht nach Plan Spiele- und Multimedia-Programmierung 2
G Methode sleepen während das Spiel weiterläuft Spiele- und Multimedia-Programmierung 3
T Spiel Überprüfung Spiele- und Multimedia-Programmierung 3
P Spiel laggt nach unbestimmter Zeit tierisch. Spiele- und Multimedia-Programmierung 27
S Hilfe bei Spiel Spiele- und Multimedia-Programmierung 6
B Hauptmenü für Spiel Spiele- und Multimedia-Programmierung 1
W Spiel ist langsam/laggt Spiele- und Multimedia-Programmierung 18
J Ascii Spiel Spiele- und Multimedia-Programmierung 1
Androbin Mein Spiel will sich nicht zeichnen lassen !!! Spiele- und Multimedia-Programmierung 7
O Vollständige Musik in Spiel einbauen (wav - Format) Spiele- und Multimedia-Programmierung 8
Y Quiz Spiel Spiele- und Multimedia-Programmierung 1
J Conways Spiel des Lebens nachprogrammiert Spiele- und Multimedia-Programmierung 1
B Spiel Programmieren, die Anfänge Spiele- und Multimedia-Programmierung 6
D [OpenGL] Spiel in der Art von Age of Empires Spiele- und Multimedia-Programmierung 4
lord239123 suche Graphiker für ein Pokemon-Spiel Spiele- und Multimedia-Programmierung 6
S Spiel installeren lassen und organisieren Spiele- und Multimedia-Programmierung 3
J Lichtupdate in tile-basiertem Spiel Spiele- und Multimedia-Programmierung 4
P Erstes Spiel (Strategie) Spiele- und Multimedia-Programmierung 31
J Mein erstes Spiel [Spielevorstellung] Spiele- und Multimedia-Programmierung 2
Bananabert Spiel Renderer Images und Strings Spiele- und Multimedia-Programmierung 4
N Spiel Menü error ! Spiele- und Multimedia-Programmierung 5
S Anfangsmenü mit Spiel verknüpfen Spiele- und Multimedia-Programmierung 16
S Spiel ruckelt trotz 50 fps Spiele- und Multimedia-Programmierung 16
D Spiel-Bilddaten auswerten Spiele- und Multimedia-Programmierung 7
Creylon [LWJGL] Spiel Exportieren Spiele- und Multimedia-Programmierung 2
L Hilfe bei Klassendesign für Spiel Spiele- und Multimedia-Programmierung 2
Devil0s Spiel laggt trotz 90 FPS (bei der Anzeige) Spiele- und Multimedia-Programmierung 9
N Webanwendung als eine Art Spiel Spiele- und Multimedia-Programmierung 8
L Korrekte Darstellung von Wasser in 2D Spiel Spiele- und Multimedia-Programmierung 4
F Ideen für spiel Spiele- und Multimedia-Programmierung 4
J wohin mit der Logik des Spiel Spiele- und Multimedia-Programmierung 2
R Experimente mit Quaxlis Spiel Spiele- und Multimedia-Programmierung 12
W Spiel-Grundlagen selbst austüfteln: Kollisionen? Spiele- und Multimedia-Programmierung 3
Kenan89 Java 2D Spiel Spiele- und Multimedia-Programmierung 39
M Automaten Spiel Spiele- und Multimedia-Programmierung 27
J Tic tac toe spiel Neustart Spiele- und Multimedia-Programmierung 5
S 2D Spiel im Vollbild langsamer als im Fenster Spiele- und Multimedia-Programmierung 11
A TicTacToe Spiel Spiele- und Multimedia-Programmierung 3
S Verbesserungvorschläge Spiel Z Spiele- und Multimedia-Programmierung 31
S Spiel abbrechen Spiele- und Multimedia-Programmierung 3
J Greenfoot "Little Crab" Spiel Erweiterungen Spiele- und Multimedia-Programmierung 6
P Spiel HUD erstellen Spiele- und Multimedia-Programmierung 6
E Spiel neustarten Spiele- und Multimedia-Programmierung 4
S Aufbau von Klassen für Spiel Spiele- und Multimedia-Programmierung 13
A Grundlagensuche für Spiel Spiele- und Multimedia-Programmierung 8
V Basisprinzipien Breakout-Spiel Spiele- und Multimedia-Programmierung 8
E Spiel startet nach exportieren nicht Spiele- und Multimedia-Programmierung 7

Ähnliche Java Themen

Neue Themen


Oben