Zugriff von externe Programme verhindern

Zodiak707

Mitglied
Hallo,

Ich bin momentan dabei ein kleines spiel in java zu basteln und wollte mal fragen ob es möglich ist das spiel gucken zu lassen ob ein anderes programm (beispielsweise Cheat Engine) darauf zugreift?
Einfach aus dem grund das ich ja irgendwie verhindern will das man bei meinem spiel cheatet ;)

Gruß Zodiak
 

Bile Demon

Bekanntes Mitglied
Wäre das nicht Aufgabe des Betriebssystems, zu verhindern, dass irgendein Programm XY in den reservierten Speicherbereich der JavaVM schreibt? Wenn das Betriebssystem sowas zuließe, würde ich mir ernsthaft Gedanken machen.

Oder ist sowas tatsächlich üblich?

Edit: Machbar wäre das höchstens, wenn die JavaVM selbst nur innerhalb des Cheatprogramms ausgeführt wird, und so die Hoheit über den Speicherbereich behält. Bleibt aber die Frage, wieso jemand sich die Mühe machen sollte, ein eigenes aufwändiges Cheat-Tool für ein kleines Java-Spielchen zu schreiben.
 
Zuletzt bearbeitet:

Network

Top Contributor
[STRIKE]Ich weiss nicht ob es etwas hilft, habe Ansatzweise mal gehört, das als final deklarierte Variablen nicht mehr geändert werden können, egal von wem.
Das wäre dann eine Möglichkeit bestimmte Bereiche zu schützen.[/STRIKE]

An sich gibt es jedoch viele Tipps und Tricks sich vor Programmen wie Cheat Engine zu schützen.
In jedem Fall ist Google dein Freund - Aber für die Antwort biste natürlich nicht hergekommen ;)

- Dein Programm könnte natürlich abfragen ob der Prozess CheatEngine gerade läuft und den Dienst solange verweigern.
- Ganzzahlen als floats oder doubles abspeichern. Bspw. hat man in vielen Spielen ja Geld, speichert man das Geld als Double ab (am besten noch mit Nachkommazahlen) zeigt es aber als Integer an, so kann man danach nicht direkt suchen. Auch muss erstmal auf die Idee gekommen werden, nach float und double zu suchen.
- Und das selbe auch anderst herum, Zahlen mit Komma, als 2 Integers speichern. Und fals gebraucht dann als Kommazahl umrechnen.
- Wechseln der verwendeten Variable. Also immer eine andere Variable initialisieren und verwenden, dadurch ändert sich die Zugriffsaddresse. Und kaum hat der Cheater die Variable gefunden, ist sie auch schon wieder woanderst gespeichert ;)

Mit diesen paar einfachen Tricks, die am besten zum Ende der Entwicklung angewandt werden sollten, lässt sich die Verwendung von Cheat-Engine also sehr gut abhalten.

@BileDemon
Google mal nach CheatEngine ;) Ist ein Programm :)
 
Zuletzt bearbeitet:

Bile Demon

Bekanntes Mitglied
Hallo Network,

dass das ein Programm ist, habe ich mir schon gedacht. Habe mir jetzt mal ein paar Zeilen zu dem Programm durchgelesen. Scheint tatsächlich ganz simpel zu funktionieren.

Da habe ich Windows mal wieder für sicherer gehalten als es ist, wenn Programme wild durcheinander in irgendwelche fremden Speicherbereiche schreiben können.
 

Zodiak707

Mitglied
auch wenns so ist das sich jemand nicht die mühe macht dafür ein tool zu schreiben gibt es trotzdem immer noch tools wie "Cheat Engine" mit denen man das trotzdem machen könnte

und da das tool ja in der lage ist auf die werte in einem programm zu zufreifen muss es doch auch ein weg geben zu verhindern das das passiert
 

Zodiak707

Mitglied
sorry für doppelpost ._. aber hab langsamer geschrieben als die antworten kamen^^ und editieren ... also entweder bin ich blind oder man kann hier nicht editieren o_O
also danke für die tips Network ich werd die gleich mal umsetzen ^^

[edit]: ok musste noch email bestätigen ._. nochmal sorry fürs doppelposten
 
Zuletzt bearbeitet:

Empire Phoenix

Top Contributor
man könnte sich zb für alle objecte (die logic enthalten) einen hash generieren über alle variablen. Wenn nun plötzlich der inhalt nichtmehr zum hash passt jvm crashen (muss so aussehen als ob das cheatprogramm schuld ist, zb nen directbuffer nehmen über reflection den cleaner benutzen und dann drauf zugreifen, dann gibts nen crash im nativen code).
 

Templarthelast

Bekanntes Mitglied
man könnte sich zb für alle objecte (die logic enthalten) einen hash generieren über alle variablen. Wenn nun plötzlich der inhalt nichtmehr zum hash passt jvm crashen (muss so aussehen als ob das cheatprogramm schuld ist, zb nen directbuffer nehmen über reflection den cleaner benutzen und dann drauf zugreifen, dann gibts nen crash im nativen code).

Theoretisch kann man über den decompilten Quellcode auf den Hashalgorithmus stoßen und dann mit diesem sowohl den Hashwert, als auch den eigentlichen Wert zeitgleich ändern.
 

Neue Themen


Oben