Home of Gamehacking - Archiv
Adressen-Probleme... - Druckversion

+- Home of Gamehacking - Archiv (http://archiv-homeofgamehacking.de)
+-- Forum: Gamehacking (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=3)
+--- Forum: Gamehacking (http://archiv-homeofgamehacking.de/forumdisplay.php?fid=6)
+--- Thema: Adressen-Probleme... (/showthread.php?tid=913)

Seiten: 1 2 3


RE: Adressen-Probleme... - FPS-Player - 12.03.2012

Nun streitet euch doch nicht Cool

Also, ich verstehe weder was von CodeInjection noch von Pointer. Von daher geb ich es auf Wink

Ich hab mir den Pointer-Modus mal angesehen, weiß aber gar nicht, was er von mir will, bzw. was ich da eintragen muß. Also, wie gesagt, ich gebs daher auf (zumindest für dieses Spiel...?)

Dennoch danke :shy:


RE: Adressen-Probleme... - DNA - 12.03.2012

Aufgeben? NIEMALS! ^^

Ne Codeinjection ist kein Hexenwerk und eigentlich auch
recht leicht zu verstehen...

[code=asm]
0B30DA80 - mov [esp+20],eax
0B30DA84 - mov ecx,[esp+20]
0B30DA88 - movzx eax,word ptr [esi+00001422] <-- Originalcode
0B30DA8F - mov [esp+2C],ecx
0B30DA93 - movzx ecx,word ptr [esi+000015A6]
[/code]

Der Originalcode ist in diesem Fall eine Funktion, die sich um die Lebensenergie
des Spielers kümmert und die Lebensenergie befindet sich in esi+1422.

Bei einer Codeinjection wird quasi eine Umleitung erschaffen die in einen
freien Speicherbereich führt.
Der Speicherbereich sollte groß genug sein, um darin arbeiten zu können.

Das ganze würde dann so aussehen:

[code=asm]
0B30DA80 - mov [esp+20],eax
0B30DA84 - mov ecx,[esp+20]
0B30DA88 - jmp 400400 <-- Hier ist nun die Umleitung
0B30DA8D - nop
0B30DA8E - nop
0B30DA8F - mov [esp+2C],ecx
0B30DA93 - movzx ecx,word ptr [esi+000015A6]
[/code]

Wird nun diese Codestelle erreicht, so springt das Programm zur Adresse 400400
und dort können wir nun bequem arbeiten.

[code=asm]
00400400 - mov word ptr[esi+00001422],03E7 <-- Unser Befehl
00400409 - movzx eax,word ptr [esi+00001422] <-- Originalcode
00400410 - jmp 0B30DA8D <-- Von der Umleitung wieder zurück
[/code]

Unser Befehl schreibt nun den Wert 999 in die Adresse, die unsere aktuelle Lebensenergie enthält.
Der Originalcode muss auch in der Umleitung auftauchen, da sonst das Spiel
nicht mehr weiter weiß und in den meisten Fällen führt das zum crash.
Damit nun das Progamm/Spiel wie gewohnt weiter im Code machen kann, springen
wir mit jmp 0B30DA8D wieder zurück.

Kleine Erklärung zum besseren Verständnis:
Stell dir den Hauptcode wie eine Hauptstraße vor.
Auf dieser Hauptstraße fährst du mit deinem Auto immer von oben nach unten.
Dein Auto hat immer die gleiche Farbe (weiß).
Da du gerne eine andere Farbe haben möchtest, folgst du einer "Umleitung".
Diese Umleitung führt dich auf eine Nebenstraße auf der sich auch ein Lackierer befindet.
Dieser Lackierer gibt deinem Auto eine neue Farbe und du fährst von da aus wieder auf
die Hauptstraße.


Oh man ... ich hoffe ihr lacht mich jetzt wegen der kleinen Erklärung nicht aus Happy Happy Happy
Aber wie du siehst, ist das ganze kein Hexenwerk Wink



RE: Adressen-Probleme... - iNvIcTUs oRCuS - 12.03.2012

Und wenn der Lackierer nach der gewünschten Farbe fragt sag ich z.B. 3300FF. Happy

Den konnt ich mir jetz nicht verkneifen Happy Happy Happy


RE: Adressen-Probleme... - FPS-Player - 22.04.2012

Moin Happy

Sooooooo, da ich ja nicht aufgeben soll (siehe DNA Wink), hab ich ein wenig weitergemacht.

Mittlerweile habe ich es durch dieses Tutorial immerhin schon mal geschafft, nach Pointern zu suchen (das Original-Tut im CE finde ich unglaublich schwer und unverständlich, obwohl ich gut Englisch kann).

Wie ihr am angehängten Bild sehen könnt, habe ich, wie es im Tut steht, mehrere Spiele gestartet, um (in diesem Fall) die Adressen für die Munition eines Maschinengewehrs rauszukriegen.
Dementsprechend habe ich auch immer nach dem entsprechenden Pointer (bzw. der immer wieder geänderten Adresse) suchen lassen = "Rescan" --> auf welche Adresse gepointet wird.

[attachment=868]


Allerdings komme ich nun nicht weiter. Soll ich jetzt nochmal X Spiele starten, bis ich nur noch eine Adresse über habe? Bzw. wie würdet ihr denn in dieser Vielzahl der Einträge die richtige Pointer-Adresse finden - auf was muß ich achten?

Dazu gleich eine andere Frage: wenn ich nun diese eine, für das MG entscheidende, Adresse gefunden habe - dann muß ich aber wahrscheinlich noch alle anderen Waffen pointern, oder? Oder greifen die dann auch auf eben diese eine Adresse zu?

Ich weiß, ich gehe euch auf die Nerven, aber ich glaube an euch, das ihr sogar einem Dummbatz wie mir noch was beibringen könnt Happy
Und bevor ich mit Code-Injection usw. anfange, sollte ich doch erstmal die Basics beherrschen... (siehe oben)

PS: ich habe hier im Forum schon einen Beitrag gefunden, in dem das Pointer-Finden bei einigen Spielen fast nicht möglich oder extrem schwer ist (ich glaube "Guardian of light"). Gibt es dann nicht eine andere/bessere/leichtere Methode solche Adressen rauszufinden?


RE: Adressen-Probleme... - iNvIcTUs oRCuS - 22.04.2012

Zum Spiel selbst kann ich eigentlich nix sagen... So wie in Deinem Fall wäre das spätestens bei mir der Zeitpunkt wo ich ne Code Injection mache, weils einfach schneller geht.
Vielleicht ist es auch bei diesem Titel nicht ganz so einfach... Borderlands...? Nutzte das nicht die Unreal Engine? Ich glaube das dürfte schwierig werden...

Bei Guardian of Light war das eigentlich recht einfach den Pointer für die Health zu finden...

(22.04.2012, 09:37)FPS-Player schrieb: Dazu gleich eine andere Frage: wenn ich nun diese eine, für das MG entscheidende, Adresse gefunden habe - dann muß ich aber wahrscheinlich noch alle anderen Waffen pointern, oder? Oder greifen die dann auch auf eben diese eine Adresse zu?
Nicht zwangsläufig... Kann z.b. sein das ein Pointerpfad besteht, aber das letzte Offset sich z.b. immer wieder unterscheidet. Oder es ist eben für jede Waffe immer derselbe Pointer. Kann aber genausogut sein, das die Pointer auch für die Gegner gelten.
Das hatte ich zuletzt bei "Das Schwarze Auge: Drakensang - Am Fluss der Zeit"... Da war der Health Pointer für den Player Charakter und seiner Party auch für die Gegner zuständig.


RE: Adressen-Probleme... - FPS-Player - 22.04.2012

(22.04.2012, 11:44)sILeNt heLLsCrEAm schrieb: Zum Spiel selbst kann ich eigentlich nix sagen... So wie in Deinem Fall wäre das spätestens bei mir der Zeitpunkt wo ich ne Code Injection mache, weils einfach schneller geht.
Schade, hierzu fehlt mir (noch) das Wissen :( Wobei ich dachte, das die Code-Injection erst dann geht, wenn ich überhaupt erstmal die richtige Adresse habe? Egal.
Zitat:Borderlands...? Nutzte das nicht die Unreal Engine? Ich glaube das dürfte schwierig werden...
Ja, ist die Unreal-Engine. Ironischerweise gibt es für diese Engine ja jede Menge Ingame-Cheats, nur leider lässt sich bei Borderlands keine Konsole öffnen.

Allerdings gibt es auch wieder eine ganze Reihe an *.ini-Tweaks, wie z.B. für Health oder Shield - allerdings keine für die Munition - das nervt mich tierisch... deswegen wollte ich da mal was versuchen, denn es gibt keinen Trainer, der für meine Version (AT-Retail [wg. uncut] inkl. aller vier DLCs, Version 1.41) funktioniert (auch nicht, wenn ich die ganzen Crack-only's benutze).
Zitat:Nicht zwangsläufig... Kann z.b. sein das ein Pointerpfad besteht, aber das letzte Offset sich z.b. immer wieder unterscheidet. Oder es ist eben für jede Waffe immer derselbe Pointer. Kann aber genausogut sein, das die Pointer auch für die Gegner gelten.
Das hatte ich zuletzt bei "Das Schwarze Auge: Drakensang - Am Fluss der Zeit"... Da war der Health Pointer für den Player Charakter und seiner Party auch für die Gegner zuständig.
Oh man.... wie soll ich als normaldenkender Mensch das begreifen/rausfinden? Huh :(

Irgendeine Empfehlung für ein wirklich simples Tut für Code-Injection auf deutsch? Am allerliebsten Step-by-step.


RE: Adressen-Probleme... - iNvIcTUs oRCuS - 22.04.2012

Code Injection Tutorials haben wir hier jede Menge...

FPS-Player schrieb:Schade, hierzu fehlt mir (noch) das Wissen Sad Wobei ich dachte, das die Code-Injection erst dann geht, wenn ich überhaupt erstmal die richtige Adresse habe? Egal.
Na die Adresse haste doch schon... Musste nur noch den Befehl finden welcher diese Adresse(n) beeinflusst.


RE: Adressen-Probleme... - Acubra - 22.04.2012

Hey,
die Pointer scan Funktion von Cheat Engine ist ziemlich nützlich. Du musst eben nur aufpassen, dass der Pointer auch wirklich immer auf die richtige Adresse zeigt. Wenn du jetzt deine Ergebnisse schon X (5 +- 3 mal würde ich sagen) gefiltert hast, dann kannst du wahrscheinlich auch sogut wie alle Pointer benutzen. Es führen eben mehrere Wege nach Rom.

Zum CodeInjection Thema. Wir haben hier im Forum eine Reihe von Tutorials, die sich mit sogut wie allen Aspekten des Themas beschäftigen, also einfach mal suchen. Ich glaube aber, dass du einen logischen Fehler hast. Für eine CodeInjection ist es nicht notwendig einen Pointer für die Adresse zu suchen.

Wenn noch weitere Fragen offen sind, stehen wir dir natürlich immer zur verfügung. Am Anfang ist es etwas verwirrend, aber mit der Zeit bekommt man nen guten Durchblick.


RE: Adressen-Probleme... - FPS-Player - 24.04.2012

Moin.

Hey Acubra, ich habe hier ein 2-teiliges Tut gefunden, welches sich aber nicht entpacken lässt... Schade.

Ich habe noch ein wenig rumprobiert und versucht, "What writes to this adress" und "What accesses to this adress" anzuklicken, mit dem Ergebnis, das mir das Spiel abstürzt. Ich hatte das zwar vorher schon gemacht und da ging es, aber nun nicht mehr.

Also hab ich einfach die Adressen für die entsprechenden Waffen normal rausgesucht und gefreezt. Zuerst ging alles gut, aber dann stüzte das Spiel wieder ab. Keine Ahnung, was ich falsch gemacht habe, aber es soll wohl - bei diesem Spiel - nicht sein.

Ich habe irgendwo einen Cheat-Table für Ammo und Health gefunden und versucht, die Scripts ins Spiel einzubinden - Absturz.

Nach soviel frustrierenden Versuchen geb ich es bei Borderlands auf.

Vielleicht hab ich irgendwann noch mal Lust, mich an einem anderen Spiel zu probieren, aber erstmal nicht. Danke trotzdem bis hierher.


RE: Adressen-Probleme... - iNvIcTUs oRCuS - 24.04.2012

Ganz einfach... Wenn z.B. ein neues Level geladen wird, ob nun selbst vom Benutzer oder durch das Spiel selbst und die Adressen immer noch gefreezt sind dann kann es durchaus sein das dass Spiel die Adressen, die eben noch für die Munition der Waffen zuständig waren, mit neuen Daten füttern will. Naja und wenn diese Adressen eben noch durch CE gefreezt sind dann kann das unter Umständen solche Folgen haben...
Den Level Change muss man selbst noch nichtmal mitkriegen... Z.B. bei Skyrim, oder anderen Rollenspielen wird die Spielwelt nach und nach geladen, quasi Koordinatensystem ähnlich. Bei Skyrim, oder dem Vorgänger steht dann irgendwann mal am unteren Bildrand "Bereich wird geladen" oder so ähnlich. Auf nem leistungsstarken System dauert das nur einen Bruchteil einer Sekunde und die Meldung selbst sieht man so gut wie garnicht, weil eben das Level so fix geladen wurde...