Hey. Ich suche ein Programm, das mir Daten aus einem aktuell laufenden DirectX-Spiel anzeigt also etwa Drehwinkel der Spielfigur oder ähnliches. Ich möchte diese Daten in C# in Echtzeit bearbeiten, also ist auch eine "Brücke" dorthin vonnöten.
:
Verschoben durch User
Tja, da wirst Du in den Sourcen des DirectX-Spieles eine entsprechende Schnittstelle einbauen müssen. Die hast Du nicht?
Rufus Τ. Firefly schrieb: > Die hast Du nicht? Als "Programmierer" wird er die bestimmt haben.... :-D
Sooo schwer ist das nun auch nicht ohne die Sourcen. Diese Daten kann man locker aus dem Speicher der Anwendung auslesen (Stichwort "Aimbot").
Dann fehlt ja nur noch etwas Zement für die Brücke... Spannen wäre ja auch noch des "Programmierers" Definition von Echtzeit.
Sharping schrieb: > Sooo schwer ist das nun auch nicht ohne die Sourcen. Wenn man weiß was man tut, ja. Aber viele Menschen haben heutzutage eine etwas seltsame Vorstellung davon, wie programmieren funktioniert.
Sharping schrieb: > Sooo schwer ist das nun auch nicht ohne die Sourcen. Diese Daten kann > man locker aus dem Speicher der Anwendung auslesen (Stichwort "Aimbot"). Interessant. Hast du einen guten Link dafür?
Ich habe http://www.homeofgamehacking.de/showthread.php?tid=146 gefunden. Das funktioniert auch. Allerdings frage ich, mit welcher Taktik ich nun die Positionen für Drehung, Neigung und Rotation finden soll. Welche Datentypen das sein könnten.
Ich mache sowas meist mit einem zweiten Display auf dem ich die Werte anzeige. Wenn man jetzt die Drehung vornimmt werden sich manche Speicherbereiche ändern. Datentyp wird warscheinlich float oder double sein.
horst schrieb: > Ich mache sowas meist mit einem zweiten Display auf dem ich die Werte > anzeige. Wenn man jetzt die Drehung vornimmt werden sich manche > Speicherbereiche ändern. Datentyp wird warscheinlich float oder double > sein. Und was tue ich, wenn bei jedem Spielstart die Werte woanders sind?
Wenn es darum geht, dass du mit Hilfe der Daten irgendwelche Aktoren steuern willst kann 'X-Sim' sowas glaub ich. http://www.x-simulator.de/forum/x-sim-software-f40.html Ist wohl dazu gedacht um aus verschiedenen Spielen heraus Motion-Plattformen u. Ä. zu steuern.
Wenn der Sourcecode nicht vorliegt, dann ist es bei einem Spiel, welches über 100MB im Speicher verbraucht sehr schwer die entsprechenden Rohdaten zu interpretieren. Ich als Programmierer würde dies garnicht erst angehen. Wenn ich jedoch planen würde einen AIMbot zu schreiben würde ich erst auf Schnittstellen lauschen die weniger Datenführen, jedoch die benötigte Date enthalten, eventuell Netzwerktraffic und dort nach Korrelationspunkten mit Maus und Tastatur suchen. Die einfache Lösung für einen AIMbot ist den Grafikspeicher auszulesen, also mit dem Bitmap zu arbeiten und einen AIMbot der auf entsprechende Pixel reagiert zu schreiben, dies ist meist viel einfacher und kann auf jedes Ballerspiel angewendet werden. Die Methode ist jedoch mit einem unangnehmen FPS verlust verbunden.
Olek schrieb: > Wenn der Sourcecode nicht vorliegt, dann ist es bei einem Spiel, welches > über 100MB im Speicher verbraucht sehr schwer die entsprechenden > Rohdaten zu interpretieren. Ich als Programmierer würde dies garnicht > erst angehen. > Wenn ich jedoch planen würde einen AIMbot zu schreiben würde ich erst > auf Schnittstellen lauschen die weniger Datenführen, jedoch die > benötigte Date enthalten, eventuell Netzwerktraffic und dort nach > Korrelationspunkten mit Maus und Tastatur suchen. > > Die einfache Lösung für einen AIMbot ist den Grafikspeicher auszulesen, > also mit dem Bitmap zu arbeiten und einen AIMbot der auf entsprechende > Pixel reagiert zu schreiben, dies ist meist viel einfacher und kann auf > jedes Ballerspiel angewendet werden. Die Methode ist jedoch mit einem > unangnehmen FPS verlust verbunden. Du hast keine Ahnung vom Programmieren.
Die Methode über die Farbe zu gehen ist Schwachsinn!! Das geht vielleicht bei einfachen Spielen aber bei anderen, komplizierteren Spielen geht das nicht ich habe das schon selber probiert.
Max W. schrieb: > Die Methode über die Farbe zu gehen ist Schwachsinn!! Das geht > vielleicht bei einfachen Spielen aber bei anderen, komplizierteren > Spielen geht das nicht ich habe das schon selber probiert. Genau das meine ich mit > Du hast keine Ahnung vom Programmieren. Egal, ignorieren wir den selbsternannten Programmierprofi einfach. Es wird technisch, bitte dennoch lesen und statt es zu ignorieren bei Nichtwissen mitteilen, wo ich weiterkommen könnte. Also, ich bin so weit, daß ich mit Cheat Engine 6.2 die Werte herausfinde, die sich beim Drehen ändern. Ich versuche nur das Drehen einzugrenzen. Ich finde float-Werte etwa bei Amnesia, deren Änderung eine Änderung der Perspektive ergibt - Gebe ich einen neuen wert ein dreht sich die Perspektive, drehe ich die Perspektive, ändert sich der Wert. Soweit so gut. Ich suche den Pointer über "Find out what accesses this address". Ich erkenne, jeder Wert+Offset beim Ergebnis ist gleich, egal ob er bei mov oder jne oder sonstwas steht. Ich ändere die Suche in hex, starte eine neue Suche mit dem Wert. Ich finde einige Adressen. Ich nehme alle auf in die untere Liste, klicke jeweils Pointer an und gebe den Wert ein und darüber in das entsprechende Feld den Offset. Jedes Mal bekomme ich den gleichen float Wert, gut. Starte ich Amnesia jetzt aber neu, zeigt keiner der Pointer-Werte auf den richtigen Wert. Starte ich Amnesia nochmal neu, funktioniert es wieder - dann ist aber auch der Wert ohne Pointer richtig. Starte ich nochmal neu, funktioniert es oder auch nicht. Bei Dead Island kann ich keinen Wert ändern ohne daß er sofort wieder umgeändert wird.
> Und was tue ich, wenn bei jedem Spielstart die Werte woanders sind?
Probier mal folgendes:
Errechne die Verschiebung im Speicher (offseta - offsetb). Suche dann
nach einer Variable die um diesen Wert abweicht. Möglicherweise ist das
ein Pointer.