Gamedaten auswerten?

06/17/2007 02:42 Koron#1
Hi,

wahrscheinlich eine recht simple Frage für die meisten hier.

Wie wertet ihr die Aktionen die im Spiel grade passieren aus um dadruch dann entsprechende Funktion zu starten?

Z.b. Objekt x taucht auf dem Bildschirm auf dann soll dieses von Objekt y angegriffen werden.


Schaltet ihr euch da dann zwischen Client und Server und wertet die Pakete aus oder eher irgendwas mit Grafikerkennung?
06/17/2007 02:53 Leonino#2
grundsaeztlich manipulieren oder lesen die wenigsten hacks direkt den packetverkehr
kommt aber drauf an
z.b. bei aimbots was auf dein beispiel passen wuerde werden imho checksummen von den models im videospeicher gesucht
duerfte auch schwer anhand der packets festzustellen sein dann muesste man immer alle koordinaten mit der map und der eigenen position abgeleichen und schaun ob waende dazwischen sind waer ineffizenter
kommt halt drauf an was du wissen willst
06/17/2007 15:32 wiz#3
Wenn du wirklich Aktionen, die es im Code gibt als Aktivierungspunkt für deinen Code meinst, dann macht man so etwas mit einer Codecave. Du entführst die Ursprungsfunktion vor deren Ausführung zu deinem eigenen Code in eine Codecave (oder wenn du eine DLL injected hast halt zu deiner Funktion), machst dort was du willst und springst danach wieder in die Ursprungsfunktion.

Das was du beschreibst könnte ja in der Tat ein Aimbot sein, dort ist es meist so, dass der Client Daten über alle Spielerpositionen hat. So ist es ein Leichtes, die Entfernung zu checken und wenn du magst sogar, ob Wände dazwischen sind. Hier gäbe es ein "Auftauchen" in dem Sinne gar nicht.
06/18/2007 07:49 Koron#4
Ob man das als Aimbot bezeichnen kann weiß ich nicht so genau. Kurz mal was ich vor habe.

Es geht um das Spiel Eve Online. Eve Online ist ein MMORPG das zur Zeit einzigartig auf dem Markt ist, da alles Gamer auf in ein und dem selben Universium spielen und im Schnitt immer 24000 User eingelogt sind.
Es ist ein Weltraumspiel das man mit X² recht gut vergleichen kann, fals das einer kennt.
Dort kann man nun Asteroiden abbauen und das gewonnen Erz verkaufen. Um genau dafür würde ich nun gerne einen Bot schreiben (oder zumindestens versuchen hehe) der erkennt wenn:

1. Ein Asteroid zerstört ist
2. sich dann den Asteroiden der am nächsten ist sucht
3. Der Laderaum voll istt
4. und dann zu Station zurück fliegt.

Wie man sieht ist das Hauptproblem das ich also habe das erkennen des aktuellen Zustandes im Spiel (Asteroiden zerstört oder nicht, Laderaum voll oder nicht ect.)