Home of Gamehacking - Archiv

Normale Version: Grid 2 v1.0.82.5097 +3
Sie sehen gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Seiten: 1 2
Hallo zusammen,

Ich hoffe mal ich bin hier richtig und mach auch alles richtig.
Hab mir das neue Grid 2 geholt und gedacht ich mach mal nen kleinen Trainer dazu.
Da ich vorher nur Trainer mit CE erstellt hab, ist das hier mein erster Trainer in ... VB...

Hab seit längerer Zeit iPhone/iPad-Spiele gehackt, mich aber nie wirklich in PC-Spiele eingelesen.

Wenig spektakuläres Aussehen, aber funktioniert Wink

[Bild: grid2u.png]

Features:
F1 - Reset Retrys
F2 - Unlimited Retrys
F3 - Max Overtake Score (Overtake Once = 999.999 Score / Bekommt jeder, aber man gewinnt trotzdem Smiling )

Hoffe das ich die Richtlinien einhalte Smiling

Greetz,
Blizzard
(29.05.2013, 03:24)BlIzZaRd schrieb: [ -> ]PS:
Woher bekomm ich "normale" "Aktivier"/"Deaktiviert" sounds? Happy

Für sowas nehm ich das hier...
Text-To-Speech

Man bräuchte zwar dann noch nen Audioprogramm zum aufnehmen und eventuell nachbearbeiten, aber auf dieser Seite kann man eine Fülle an Sounds generieren.
Und auch noch verschiedene Effekte drüberlegen...
(29.05.2013, 09:59)sILeNt heLLsCrEAm schrieb: [ -> ]Für sowas nehm ich das hier...
Text-To-Speech

Vielen Dank!

Funktioniert wieder, auch wenn Aobscan lange sucht..

Erster Post aktualisiert
Dann nimm doch einfach Festadressen statt AOB Scan.
Geht doch viel schneller...
Oder geht das nicht bei diesem Game?
(29.05.2013, 22:22)sILeNt heLLsCrEAm schrieb: [ -> ]Dann nimm doch einfach Festadressen statt AOB Scan.
Geht doch viel schneller...
Oder geht das nicht bei diesem Game?

will nen dec-command nopn, der hat sich aber vom Offset mehrmals verschoben, deswegen bin ich auf AOB umgestiegen.
oder gibts da bessere möglichkeiten den Offset zu ermitteln?
Kommt drauf an wo sich die Offsets befinden...
Ob sich diese also im Speicherbereich der Startdatei befinden oder im Speicherbereich eines geladenen Moduls oder irgendwo im gemappten Speicherbereich der dem Spiel reserviert wurde...
(30.05.2013, 01:00)sILeNt heLLsCrEAm schrieb: [ -> ]Kommt drauf an wo sich die Offsets befinden...
Ob sich diese also im Speicherbereich der Startdatei befinden oder im Speicherbereich eines geladenen Moduls oder irgendwo im gemappten Speicherbereich der dem Spiel reserviert wurde...

Im Speicherbereich der Startdatei.
grid2.exe startet grid2_avx.exe <- enthält die code-stelle
naja, hab jetzt auch ein resetten eingebaut, das sollte eigentlich auch reichen, auch wenn es angenehmer is wenn man nix mehr drücken muss Wink
Hey,
wenn sich das relative Offset zur Cheatadresse (in Bezug auf die BaseAdresse der grid2._avx.exe) nicht ändert, dann kannst du ja immer die Adresse berechnen indem du das Offset auf die Baseadresse raufaddierst.
Na wenn sich das Offset im Speicherbereich der Startdatei befindet kannste der Einfachheit halber feste Offsets nehmen.
Da Du aber sagtest das bei einem Neustart die Adresse plötzlich anders ist dann wird das damit zusammenhängen das die Datei auf ASLR aufbaut. Code Shifting wäre in diesem Zusammenhang ein weiteres Stichwort.
Das heißt mit anderen Worten das Du die Basisadresse der Startdatei auslesen musst und zu dieser Basis das Offset hinzuaddieren musst wo Du deine Code Injection haben willst.

Das wurde zwar schon mehrfach hier durchgekaut aber hier nochmal als Beispiel...
In der Regel hat ein Programm, oder Spiel, eine Basisadresse von 0x400000h.
Nehmen wir mal an Du willst bei einem Spiel an Adresse 0x8FE56Ah eine Code Injection vornehmen dann würdest Du einfach per Trainer an besagter Adresse eben deinen Code schreiben (beispielsweise einen Jump zu einer Codecave).
Wenn aber jetzt die Basisadresse bei jedem Neustart des eine andere ist kannst Du natürlich nicht an Adresse 0x8FE56Ah eine Injection machen.
Warum? Weil dieser Speicherbreich dem Spiel dann entweder nicht zusteht oder Du damit einen anderen Code des Spiels überschreibst und damit das Spiel zum Absturz bringen kannst.
Aber...
Wenn Du von der Adresse, wo Du was ändern willst, die Basisadresse subtrahierst bekommst Du das Offset relativ zur Basisadresse. Nehmen wir wieder obiges Beispiel. Adresse 0x8FE56Ah - Basisaddy 0x400000h = 0x4FE56Ah. Man könnte also auch sagen wenn ich zur Basisaddy das Offset hinzuaddiere lande ich an der Stelle im Code wo ich meine Injection machen will. Z.B. könnte man das jetzt auch so ausdrücken, das man NICHT schreibt 0x8FE56Ah sondern beispielsweise "Crysis3.exe+4FE56A". Wenn jetzt also z.B. die Basisadresse nicht mehr 0x400000h ist sondern 0xBC0000h dann steht trotzdem an Offset 0x4FE56Ah der Code den Du zu ändern beabsichtigst. Die absolute Adresse ist dann eben NICHT "Basisaddy 0x400000h + Offset 0x4FE56Ah = 0x8FE56Ah... Sondern die Basisaddy 0xBC0000h + Offset 0x4FE56Ah = 0x10BE56Ah.

Ich hoffe das ist Dir so erstmal verständlich. Wenn Du dich ein wenig mit Cheat Engine auskennst, und davon gehe ich aus, dann schau dir mal von diversen Spielen den Code im Dissassembler Fenster an. Zu dem solltest Du mal da in der Menüleiste unter "View" die Option "Show module addresses" zu testzwecken mal aktivieren und deaktivieren um das zu verdeutlichen.

Abschließend dazu nochmal zwei Beispiel Screenshot meinerseits...
Call of Juarez Gunslinger hat auch ne variable Basisadresse...
Screenshot 1 (Erster Start des Spiels)
[attachment=1482]
Screenshot 2 (Spiel einmal neugestartet)
[attachment=1483]

Die jeweilige Basisadresse kann im oberen Teil des Bildes neben "Base" abgelesen werden. Im ersten Bild ist diese 000D0000 und im zweiten 00320000.
Und in den jeweiligen Bildern wirst Du erkennen das unter "Anzeige von Dateiname + Offset" der Code immer gleich ist. Bis auf den in der dritten Zeile.
Und zweifelsohne wirst Du auch erkennen das im unteren Teil des Bildes unter "Anzeige von absoluter Adresse" die Adressen unterschiedlich sind.
Wow, einfach super wie einem hier geholfen wird!
Das mit der Ansicht war der entscheidende Hinweis Smiling
DANKE!
Seiten: 1 2