Spiel in Java - prinzipiell nicht cheatsicher?
-
Bekanntermassen kann man ja *.class Dateien dekompilieren und bekommt recht lesbaren Quellcode (vor allem wenn die Bezeichner gut gewäht sind). Also kann auch jeder, der auch nur annäherend Java Kenntnisse hat recht leicht cheaten, indem er einfach eine Zeile ändert und neu kompiliert.
Nun könnte mir das zwar egal sein, wenn das jemand macht, und sich so selbst betrügt. Ich würde aber gern zu einem Java Applet eine Online Highscore machen, die änlich wie das hier funktioniert: http://www.fh-merseburg.de/~roesch/osr/show.php. Dort kann man einen Eintrag per seite.php?Ergebnis=verschlüsselterString eintragen. Das Verschlüsseln des Strings würde in Java natürlich nix bringen, da jeder den Verschlüsselungsalgo mit seinen Daten aufrufen kann, indem er sich einfach an der Stelle einklinkt. Damit ist auch egal wie gut der Algo selbst ist.
Habe ich irgendeine Chance, das sicherer zu machen?
Bye, TGGC (Der Held ist zurück)
-
-
Meinst du echt, das bringt was? Dann heissen die Funktionen eben anders, sollte doch aber trotzdem noch 'ne Sache von 5 Minuten sein, um die Stelle zu finden, an der die Daten ins Netz geschickt werden (wo ich persönlich ansetzen würde). Naja, ich werde es mir mal anschauen (hatte die Idee aber auch schon und zwar verworfen ;).
Bye, TGGC
-
mach das appelt in z.B. main.class und rufe alle funktionen nur durch andere klassen auf, die du dann per chmod 755?(für user nicht les und schreibbar) machst.
so müsste es klappen
-
javadecompiler schrieb:
mach das appelt in z.B. main.class und rufe alle funktionen nur durch andere klassen auf, die du dann per chmod 755?(für user nicht les und schreibbar) machst.
Und wie soll das Spiel dann ausgefuehrt werden?
-
Also das hilft mir nicht, kann man trotzdem noch zu leicht knacken. Man braucht eigentlich nur nach einem String oder Zahl suchen, von dem man weiss, das er in der Nähe der kritischen Stelle auftauchen muss. Von dort aus kann man sich dann per debugger oder per Hand durchfummeln.
Dann ist es noch sinnvoller, wenn man selbst fiese Namen vergibt, wie Zahll, Zah11, Zah1l und Zahl1.Bye, TGGC (Der Held ist zurück)
-
Musst für die release Version nur mit suchen&ersetzen solche Variablennamen
einführen, dann verlierst du nicht den Überblick und der Rest verzweifelt daran
-
Bastel' halt noch jede Menge Schrott-Funktionen rein die irgendwelche Sockets kurz öffnen oder www.bild.de anpingen...
-
Sgt. Nukem schrieb:
oder www.bild.de anpingen...
*looooooooooool*
Jetzt schickt jeder mal dem TGGC per eMail, welche URLs er bombardiert haben möchte.
-
Ok, gibts noch 'ne praktikable Lösung?
-
Die Compiler compilieren ja extra so Debug-freundlich. Aber ob alle Compiler das so machen?
Vielleicht kann man ja auch Schalter setzen. Ich hab es nicht ausprobiert, aber schau mal, was der Schalter g:none macht.
-
Liegt glaub ich in der Natur der Sache (sprich: am ByteCode), das es so einfach ist. Na ich werde mal probieren, was in hinfummeln kann.
Bye, TGGC (Der Held ist zurück)
-
TGGC schrieb:
Liegt glaub ich in der Natur der Sache (sprich: am ByteCode), das es so einfach ist. Na ich werde mal probieren, was in hinfummeln kann.
Schon klar, aber wenn "ByteCode" von Java oder C# generell auch mit *-Obfuscatorn super easy zu reverse-engineeren ist, würden das wohl kaum prof. Firmen einsetzen...
Versuchen würd' ich's mal, was ein Java-Decompiler aus so 'ner Suppe noch macht...Du könntest ja sonst noch den NW-Code in eine DLL auslagern und per JNI nachladen. Dann wahrscheinlich über den Umweg eines Servlet. Und dann ist es natürlich auch vom Servlet-Container abhängig...
Wie groß ist denn die Wahrscheinlichkeit für ein simples Hobbyprojekt, daß es "gehackt" wird...?!?!
-
[quote="Sgt. Nukem"]
TGGC schrieb:
Wie groß ist denn die Wahrscheinlichkeit für ein simples Hobbyprojekt, daß es "gehackt" wird...?!?!
Na ja, wenn es sich um ein Projekt eines großartigen Spieleprogrammierers wie TGGC handelt, ist die Wahrscheinlich schon beängstigend hoch.
-
Sgt. Nukem schrieb:
TGGC schrieb:
Liegt glaub ich in der Natur der Sache (sprich: am ByteCode), das es so einfach ist. Na ich werde mal probieren, was in hinfummeln kann.
Schon klar, aber wenn "ByteCode" von Java oder C# generell auch mit *-Obfuscatorn super easy zu reverse-engineeren ist, würden das wohl kaum prof. Firmen einsetzen...
Versuchen würd' ich's mal, was ein Java-Decompiler aus so 'ner Suppe noch macht...Habe ich ja schon längst, oder was meinst du, wie ich zu meinen Aussagen da oben komme?
BTW: OSR wurde auch _mehrmals_ gehackt.
Bye, TGGC (Der Held ist zurück)
-
TGGC schrieb:
BTW: OSR wurde auch _mehrmals_ gehackt.
Erfolgreich?!?
WER hat mich vom Ersten runtergeboxt?!?!
-
Klar erfolgreich, habe dann immer die Einträge gelöscht, die offensichtlich gecheatet waren. Und genau das seh ich auch diesmal wieder kommen.
Könnt ja schonmal bissl rumtesten, vor dem offiziellen Start => http://www.fh-merseburg.de/~roesch/mars/index.htm
Bye, TGGC (Der Held ist zurück)
-
Native Code zu compilieren wäre ne einigermaßen sichere Lösung. Finde ich aber nicht gut, wollte es nur gesagt haben...
-
TGGC schrieb:
Könnt ja schonmal bissl rumtesten, vor dem offiziellen Start => http://www.fh-merseburg.de/~roesch/mars/index.htm
Muahahah... gleich beim 2. Mal mit Namen Karl auf'n 2. geschafft...
...ohne das Manual zu lesen!
Das reicht für heute!
Gut' N8!
Aber kewl.
-
TGGC schrieb:
Sag mal, wie berechnest Du die Gravitation? Die Beschleunigung am Ende ist ja crass.