Forum: PC-Programmierung Trainer programmieren


von R. H. (dubstep)


Lesenswert?

Guten Abend,
ich möchte einen Trainer für ein Spiel schreiben. Ich weiß, wie ich die 
Werte im RAM verändere und wie ich sie lese. Das Problem ist, dass ich 
nicht weiß, wie ich herausbekomme, an welcher Stelle die Variable liegt, 
die ich verändern möchte. Wie bekomme ich raus, an welcher Position sich 
die Variable für z.B. das Nitro in NFS befindet?

Vielen Dank im Voraus

von Fer T. (fer_t)


Lesenswert?

Brute Force?
Sich das Programm im Hexeditor angucken und gucken ob man was raus 
finden kann dort?

von Kilpikonna (Gast)


Lesenswert?

Cheaten bzw. Betürgen nennt sich sowas.

von citb (Gast)


Lesenswert?

Hexdump machen.
Einenwert im Spiel veraendern.
Neuen Hexdump machen - vergleichen mit erstem Hexdump.

citb

von Masl (Gast)


Lesenswert?

Kilpikonna schrieb:
> Cheaten bzw. Betürgen nennt sich sowas.

Stört im Singleplayer genau wen?
Haben doch eh alle Spiele schon fest mit eingebaut, und das seit 
Jahrzehnten...

Zum Lernen halte ich sowas für ne tolle Sache, ist mal was anderes als 
die üblichen Neuauflagen von GameOfLife, Bubblefish, Snake etc...

citbschrieb schrieb:
>Hexdump machen.
>Einenwert im Spiel veraendern.
>Neuen Hexdump machen - vergleichen mit erstem Hexdump.

Aber die Position muss ja nicht immer die gleiche (zwischen 
verschiedenen "Spiel-Sitzungen". Außerdem ändern sich in Spiele wohl 
mehrere Werte selbstständig, und das sehr oft, wie also den richtigen 
finden?

von Karl H. (kbuchegg)


Lesenswert?

Masl schrieb:

> Aber die Position muss ja nicht immer die gleiche (zwischen
> verschiedenen "Spiel-Sitzungen".

Sehr wahrscheinlich sind sie es aber.
Das ist auch für die Entwickler das allereinfachste, wenn Variablen 
statisch im Speicher liegen und nicht dynamisch allokiert werden müssen.

Wenn die Entwickler eine neue Version rausbringen, kann es sein, dass 
sich die Position verändert. Aber in ein und derselben Programmversion 
werden die Dinge höchst wahrscheinlich immer an derselben Stelle sitzen.

> Außerdem ändern sich in Spiele wohl
> mehrere Werte selbstständig, und das sehr oft, wie also den richtigen
> finden?

3 Dinge braucht der Mensch, der so etwas macht
* Geduld
* Geduld
* und noch mal Geduld.

und natürlich einen guten Hex-Editor, der ihn dabei unterstützt die 
Unterschiede in den Hex-Dumps zu finden. Der Rest ist dann Intuition und 
Raten.

Sorry: Aber du hast dir selbst diese Aufgabenstellung gewählt. Stell 
dich darauf ein, dass du die nächsten Tage nur Hex-Dumps studieren wirst 
und viele Versuche machen musst, bist du rauskriegst welche 
Speicherzellen sich sowieso immer verändern und welche du durch deine 
Spielaktion verändert hast.

von Masl (Gast)


Lesenswert?

Karl Heinz Buchegger schrieb:
> Sorry: Aber du hast dir selbst diese Aufgabenstellung gewählt.

Nein habe ich nicht, der TE ist immer noch R.H., aber mich hat das 
Theman einfach interessiert :-)

Ansonsten klingt deine Ausführung logisch!

von Karl H. (kbuchegg)


Lesenswert?

> Zum Lernen halte ich sowas für ne tolle Sache

Zum (Programmieren) Lernen ist das bescheuert. Ein anderes Programm 
Reverse Engineeren, mit nichts anderem als ein paar Hex-Dumps, gehört 
wohl mit zu den schwierigsten Dingen, die man sich vorstellen kann.

von Vlad T. (vlad_tepesch)


Lesenswert?

also ich hatte mal ein tool, dass das fast selbstständig macht.


man gab den zu suchenen wert an.
klick auf button, er las speicher aus.
man änderte im spiel den Wert.
man gab den zu suchenen wert an.
klick auf button, er las speicher aus und vergleichte.

nach wenigen Iterationen hat er die Stelle gefunden.

alternativ zum wert eingeben konnte man auch nach stellen suchen, die 
größer oder kleiner geworden sind, falls der wert nicht im spiel nicht 
numerisch angezeigt wird.

Ich glaub das tool konnte dann aus dem ergebnissen auch trainer 
erstellen.
An sich ist das ja alles kein hexenwerk.
Das schwierigste dürfte unter heutigen OSen sein, dass man auf den 
Prozesspeicher zugreifen darf.

von Mr.T (Gast)


Lesenswert?

> man gab den zu suchenen wert an.
> klick auf button, er las speicher aus.
> man änderte im spiel den Wert.
> man gab den zu suchenen wert an.
> klick auf button, er las speicher aus und vergleichte.

sowas in der Art?
http://www.cheatengine.org/index.php

von icke (Gast)


Lesenswert?

@Vlad
Das klingt nach Game Wizard.

von Vlad T. (vlad_tepesch)


Lesenswert?

davon gab es mehrere - keine Ahnung, wie die alle hießen.

von Udo S. (urschmitt)


Lesenswert?

Karl Heinz Buchegger schrieb:
>> Zum Lernen halte ich sowas für ne tolle Sache
>
> Zum (Programmieren) Lernen ist das bescheuert. Ein anderes Programm
> Reverse Engineeren, mit nichts anderem als ein paar Hex-Dumps, gehört
> wohl mit zu den schwierigsten Dingen, die man sich vorstellen kann.

Karl Heinz, du bist zu optimistisch.
Der Gute will nicht programmieren lernen, sondern das Spiel trainieren.
:-)

von Uwe (Gast)


Lesenswert?

> Das klingt nach Game Wizard
Stimmt da werden Erinnerungen wach !
Aber ob der noch unter Win7 funzt ?

von dEx (Gast)


Lesenswert?


von R. H. (dubstep)


Lesenswert?

Danke erstmal für die vielen Antworten. Ich muss mich mit diesem 
Debuggen erstmal auseinandersetzen. Dann wird das bestimmt. Zumindest im 
Prinzip habe ichs begriifen ;)

von EagleEye (Gast)


Lesenswert?

Mich würde mal brennend interessieren, welche Datei man dann im 
"Hex-Editor" öffnet bzw. wie man mit einem solchen HexEditor auf den RAM 
zugreifen kann, um deren Speicher auszulesen?!


Gruß

von Vlad T. (vlad_tepesch)


Lesenswert?

mirkes tiny hexer kann zb prozessspeicher auslesen

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.