Daten aus DirectX-Spiel anzeigen

Gast #2780543
Lesenswert?

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.
Gast #2780566
Lesenswert?

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?
Gast #2780577
Lesenswert?

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.
Gast #2780580
Lesenswert?

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.
Gast #2781514
Lesenswert?

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.
Gast #2781841
Lesenswert?

> 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.
Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.