Speicher eines Adobe AIR Clients auslesen

03/18/2010 21:41 Kahles#1
Nabend Community,

ich habe ausversehen im Tutorial-Forum das Thema bereits angeschnitten gehabt, wobei der Thread leider gelöscht statt verschoben wurde. Nichts desto trotz habe ich neue Erkenntnisse gesammelt und suche nach Unterstützung. :pimp:

Ausgangssituation
Im Spiel League of Legends wird am Ende eines Spiels eine Zusammenfassung angezeigt. Diese enthält die Spielernamen, die Punkte der Spieler und die gekauften Gegenstände.

Das Spiel an sich ist kostenfrei, es ist aber möglich für Realgeld Heros dazu zukaufen.

Der Client hat zwei Bestandteile:
  1. Adobe AIR Client für die Community (Chats, Gruppensuche, Shops)
  2. Direct3D Client für das eigentliche Match (wird immer neu von AIR gestartet bei Matchbeginn)

Zielstellung
Ich möchte die Informationen aus der Statistik auslesen und speichern. Zielstellung ist nicht die Daten des Spiels zu verändern oder zu cheaten, sondern die gespeicherten Informationen dienen dazu die Spieler zu bewerten.

Der Ablauf ist in Stichpunkten folgender:
  1. Matchup suchen
  2. Match spielen
  3. per Programm die Daten aus der Statistik auslesen
  4. im Programm die einzelnen Spieler (Spielername) per Noten bewerten
  5. Werte werden gespeichert

Wenn die erste Phase funktioniert, könnte ich mir vorstellen, dass beim Spielen auch die Spieler ausgelesen werden und in der lokalen Datenbank gesucht wird. Wird eine Übereinstimmung gefunden, werden diese im Programm mit den Noten angezeigt.

Das ganze soll zudem auch für das eigene Team (meist feste Leute) eine Auswertung über einen längeren Zeitraum ermöglichen.

Wer DotA kennt, wird sicher auch Banlist.nl kennen. Im Grunde handelt es sich in einfacherer Form um die gleichen Anforderungen.

Versuche
Anfangs habe ich mit T-Search versucht die Informationen im Speicher zu finden, leider ohne Erfolg.

Dank eines Tipps von Adroxxx, habe ich die Adressen mit Cheat Engine gefunden. Dabei habe ich folgendes versucht:
  1. Matchup suchen
  2. Match spielen
  3. Sobald Statistik zu sehen, mit CE den Prozess wählen
  4. Per Text Search einen Namen (anfangs meinen) über CE suchen
  5. meist zwischen 5-10 Ergebnissen
  6. Matchup suchen
  7. erneut Match spielen
  8. Sobald Statistik zu sehen "Find next" mit gleichen Namen ausgeführt, wobei das eher proforma war

Die zweite Suche hat nie eine Adresse übrig gelassen. Die Adresseninhalte haben sich meist auch ohne mein zutun nach 2-4 Minuten verändert. Ich habe in dieser Zeit den Dialog unangetastet gelassen.

Die Verfolgung der Pointeradressen hat bei mir nicht so geklappt wie ich es wollte. Dabei habe ich um die 9 Tutorials zu diesem einen Thema studiert.

Zusätzlich zu diesen speziellen Tutorials habe ich alle hier im Forum gefundenen Tutorials versucht. Wobei alle immer nur mit reinen Zahlenwerten statt Strings arbeiten.

Als weitere Option sehe ich den Paketsniffer, welchen ich mir aber noch nicht angeschaut habe.

Frage
Kann mir jemand sachdienliche Hinweise geben oder hat vielleicht jemand Lust mit mir zusammen das ganze auszuarbeiten. Ich würde mich gerne in das Thema einarbeiten und suche in diesem Fall einen Mentor der sich beweisen kann :handsdown:

Danke an alle fürs lesen und für die Antworten!
04/01/2010 01:59 Kahles#2
Nabend,

jetzt sind rund 2 Wochen vergangen und recht viele Leser in diesem Beitrag hängen geblieben. Da ich immer noch auf der Suche nach Hilfe bin, wollte ich noch mal Nachfragen ob jemand Interesse hat mir zu helfen :)

Gruß
04/27/2010 23:53 hallamasch#3
Ich Weiss das der Thread schon einen Monat alt ist, da es in dem Bereich allerdings relativ wenige Informationen gibt hab ich mich entschlossen trotzdem drauf zu antworten.

@Mods: Ich hoffe das ist okay, ansonsten bitte löschen.

Ich erinner mich mal gelesen zu haben, das die neuen Flash Versionen den kompletten Speicher verschlüsseln.

Da ich mit mit Adobe Air / Flash eigentlich kaum beschäftige, kann ich dir auch nicht mit 100% sicherheit sagen ob und wie die Verschlüsselung aufgebaut ist. Daher müsstest du dich da weiter einlesen.

Als alternative, würde ich mir die packete mal etwas genauer ansehen. ob und gegebenfalls wie diese Verschlüsselt sind.

Ich persöhnlich bevorzuge eigentlich immer die Packet Methode, da sie sich nicht so oft ändert (patching von einer Anwendung) und ausserdem flexiblere Einsatzgebiete hat.

Nachteile sind das es weit aus länger dauert eine Anwendung auf Basis der Packet Methode zu entwickeln, da die Packet Structure erstmal analysiert und verstanden werden muss.

Alles Gute