Java Spiele cheatsicher!



  • Vor kurzem gabs hier mal einen Thread über die Cheatsicherheit von Java Games, wo man allgemein meinte, man könne prinzipiell in jedem Java Game cheaten.

    Nun, zugegeben bin ich noch nicht recht fit in dieser Sprache aber wie soll man ein Spiel wie zB. dieses knacken:
    http://www.jippii.de/jspde/games/game.jsp?prop=oldbombs_nosound

    Die Client Dateien liegen hier:
    http://kangas.portal.jippii.net/bomb/

    Gut, man könnte diese Files nun decompilen, modifizieren, und wieder compilen. Aber dann?
    1. Es fehlen die Server Dateien.
    2. Der Client kann mit den Server nur kommunizieren, wenn sich dieser auf der selben Host befindet, von der man den Client gedownloaded hat.
    3. Man hat keinen Zugriff auf den Server.

    Also ich sehe hier keine Möglichkeit.



  • sheb schrieb:

    2. Der Client kann mit den Server nur kommunizieren, wenn sich dieser auf der selben Host befindet, von der man den Client gedownloaded hat.

    wer verbietet die kommunikation? wenn's der client oder das client jre ist, dann haste gewonnen. dann kannste die policies verändern oder das jre modifizieren



  • Thx für deinen Beitrag.

    Aber woran kann man das feststellen?

    (Sorry bin, wie gesagt, noch nicht recht fit in Java)



  • Hi

    nach der geschwindigkeit des Games zu urteilen, wird sehr viel auf der serverseite berechnet. Dadurch ist es schon mal sehr schwer überhaut was zu modifizieren. Wenn der server alle wichtigen aktionen übernimmt wie z.B. Spieler bewegen, bomben plaziehren, treffer verrechnen, punkte zählen, ...
    und die gui nur für die darstellung der daten und das einlesen der 5 tasten zuständig ist. Das einzigste wo man dann noch cheaten könnte, währe, das du eine Unterstützung für den spiler implementierst, der anzeigt, welche felder von einer bombe bedroht sind. bzw der deine figur dann entsprechend an einen sicheren platz bewegt wenn du eine bombe ablegst.

    gruss



  • Hier kannst du einfach 'ne unschlagbare KI spielen lassen, alles was der Client kontrolliert ist ganz simpel manipulierbar. In dem benannten Thread ging es aber auch nicht einfach um Clients, sondern um (komplette) Spiele, von denen man mit dem Spiel quasi den Quellcode bekommt. Angenommen der Server kontrolliert, wenn jemand stirbt. Würde man den Server veröffentlichen, so wäre es wiederum ein leichtes einen Cheat einzubauen, damit einer der Clients Godmode hat.

    Bye, TGGC (Wähle deine Helden)



  • eine Unterstützung für den spiler implementierst

    Implementieren? Kann mir das eher als externes Programm vorstellen, ähnlich wie zB. ein color-basierender Aimbot (...wie er leider sehr häufig bei Spielen wie Counterstrike benutzt wird 🙄 )

    Hier kannst du einfach 'ne unschlagbare KI spielen lassen, alles was der Client kontrolliert ist ganz simpel manipulierbar.

    Glaube nicht, dass das möglich ist. Termite sagt ja, dass die Bewegung vom Server berechnet wird. Und wenn doch, versagt eine perfekte KI spätestens in der Praxis bzw. kann man sie trotzdem killen.

    Würde man den Server veröffentlichen

    An den kommt man ja nicht ran (oder irre ich?)

    Thx für eure Beiträge 🙂



  • sheb schrieb:

    Glaube nicht, dass das möglich ist. Termite sagt ja, dass die Bewegung vom Server berechnet wird.

    Ist doch egal. Ein perfekt spielender Mensch würde nicht verlieren. Also die genauso spielende KI auch nicht. Höchstens durch Lag oder so.

    Bye, TGGC (Keine Macht den Dummen)



  • Also die genauso spielende KI auch nicht.

    Wie sollte man sowas denn entwickeln? Ein externes Programm im Hintergrund laufen lassen?
    Abgesehen davon, gibt es diese 'perfekt spielende KI' nicht. Das würde bedeuten, sie kann nicht gekillt werden - was aber nicht möglich ist.



  • Warum sollte das nicht gehen? Der Client bekommt das Spielfeld und Positionen aller Gegner geschickt. Dann analysiert man einfach, was zu tun ist, um nicht zu sterben (allen Bomben ausweichen, nicht in Sackgasssn laufen...) Entsprechende Befehle senden und gut ist. Wie gesagt, der Client ist auf einfachste Weise komplett manipulierbar.

    Bye, TGGC (Wähle deine Helden)



  • Gehe mit dir jede Wette ein, dass in diesem Spiel keine perfekte KI möglich ist.

    Abgesehen davon, wie willst du den Client manipulieren, wenn du keinen Zugriff auf deren Server hast?
    Du müsstest die Files ja wieder mit denen vom Server ersetzen.



  • sheb schrieb:

    Abgesehen davon, wie willst du den Client manipulieren, wenn du keinen Zugriff auf deren Server hast?

    Öhhm, in dem ich den Client manipuliere. Wie auch sonst. Autocogito.

    Bye, TGGC (Keine Macht den Dummen)



  • Hmm, mir scheint es in diesem Bereich echt noch an Fachwissen zu fehlen, um ernst genommen zu werden 🙂 Naja Selbsterkenntnis ist der erste Weg zur Besserung :p

    Hat evt. wer einen oder ein paar Links zu diesem Thema oder kann mir ein gutes Buch empfehlen?

    Ansonsten sei noch gesagt: Ich wette mit jedem Mutigen, der sich traut die Wette anzunehmen um 50€, dass eine perfekte KI in diesem Spiel nicht möglich ist.



  • hi

    na ja. guck dir mal schach an. da haben mitlerweile schachmeister probleme sich gegen computer zu behaupten. mit genügen rechenpower und dem entsprechenden wissen ist es kein problem eine fast unschlagbare ki zu entwickeln. Jeder spieler hat ja nur 6 mögliche aktionen. stehen bleiben, sich in eine der 4 richtungen bewegen oder eine bombe ablegen.
    Weiter kennst du den aktuellen speilplan mit der plazierung der bomben und der gegnerischen spieler. Damit allein ist es schon mal für den pc einfacher sichere und unsichere felder zu erkennen, als es mit dem menschlichen auge möglich ist. Der pc weis wann welche bombe von wem plaziert wurde und kann somit die zeitverzögerung berücksichtigen. ggf sogar unter berücksichtigung der nächsten züge des gegners davor schützen in eine falle zu laufen. schau dir mal andere bomberman implementierungen an, die haben auch KIs drin die gar nicht so schlecht sind. ( die sind auch sicher nicht auf unschlagbarkeit getrimmt worden )

    Ich selber hab mal eine KI für 4 gewinnt geschrieben. Ist zu dem oberen problem sicher einfach. Das einzigste was drin war war ein unentschieden, solage beide optimal gespielt haben.

    gruss Termite



  • sheb schrieb:

    Ansonsten sei noch gesagt: Ich wette mit jedem Mutigen, der sich traut die Wette anzunehmen um 50€, dass eine perfekte KI in diesem Spiel nicht möglich ist.

    Du solltest den Einsatz erhöhen, dann macht das schon wer.



  • Man sollte vielleicht erstmal klären was "perfekt" bedeutet.
    Einerseits im Sinne von optimal: es gibt keine bessere KI. Eine beste KI gibt es natürlich immer, ist also langweilig.
    Andererseits: Perfekt im Sinne von "gewinnt immer". Da müsste man nochmal zwei Situationen unterscheiden: Spiel mit kompletten Wissen (insbesondere ohne Zufällige Elemente-> Schach, vier gewinnt) und ein Spiel ohne vollständiges Wissen (Skat, MauMau, ...) ggf. mit zufälligen Elementen. Beim zweiten kann es keine KI geben, die immer gewinnt (außer mit hellseherischen Fähigkeiten). Beim Spiel mit kompletten Wissen gibt es auch immer eine KI die zumindest das Beste aus der Anfangssituation rausholt. Entweder sie kann zumindest immer ein Unentschieden rausholen (Beispiel TicTacToe) oder sie wird immer gewinnen (der anfangende Spieler beim Bauernschach, glaube ich zumindest).
    Ich vermute Bomberman gehört zum Spiel mit vollständigem Wissen, dann ließe sich also auch eine KI konstruieren, die immer das Beste aus der Anfangssituation herausholt. Ob das praktisch auch möglich ist, steht auf einem anderen Blatt ...

    Gruß, Dirk



  • -Dirk- schrieb:

    Ich vermute Bomberman gehört zum Spiel mit vollständigem Wissen,

    Nicht unbedingt, immerhin können sich unter Blöcken PowerUps befinden.

    Aber moment, für euch ist die perfekte KI eine, die immer gewinnt?? 😕

    Die ist sicher leichter zu programmieren, als eine vernünftige KI. 🕶



  • Ich vermute Bomberman gehört zum Spiel mit vollständigem Wissen

    Denke ich nicht. Zwar gibt es nur eine begrenzte Anzahl an Handlungsmöglichkeiten, allerdings kann man in diesem Spiel nicht gewinnen, da es nicht nach einem 'Survival-System' läuft, sondern einfach eine neue Runde beginnt, sobald der vorletzte Stein gesprengt wird. Und wenn man mal gekillt wird, kann man jederzeit wieder joinen ohne auf die nächste Runde warten zu müssen.
    Als Sieg könnte man es betrachten, wenn man 99 Punkte erreicht hat (dies ist der höchste Score, den man erreichen kann).
    Allerdings müsste die KI dann nicht nur perfekt ausweichen, sondern auch angreifen können, ohne dabei zu sterben. DAS wäre eine perfekte KI - und dies ist imho nicht möglich.

    Die ist sicher leichter zu programmieren, als eine vernünftige KI.

    Wenn eine perfekte KI nach meiner o.g. Auffassung doch möglich sein sollte, wäre das wohl mit höllischem Aufwand verbunden.

    Du solltest den Einsatz erhöhen, dann macht das schon wer.

    Nun, immerhin würde derjenige 50 € verlieren :p





  • gibs auch ein Aimbot für jippii.de billard? wenn ja kann mir jemand die seite geben?



  • also gibt es cheats oder aimbot für jippii.de billard..

    also das man sieht .wie man die kugel schlagen muss...

    wenn jemand die seite weiß bitte melden

    wäre auch sehr verbunden 🙂


Anmelden zum Antworten