Home of Gamehacking - Archiv
Harvest Massive Encounter v1.18 Singleplayer Money cheat - 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: Harvest Massive Encounter v1.18 Singleplayer Money cheat (/showthread.php?tid=1366)

Seiten: 1 2


Harvest Massive Encounter v1.18 Singleplayer Money cheat - Injexdoor - 26.02.2013

Guten Tag,

ich habe mir für den ersten Versuch den Horizont des einfachen "suchen und verändern" zu verlassen, ein scheinbar schwieriges Spiel ausgesucht.

Ich habe mich bei diesem Versuch an das Cheat Engine Forum gehalten, in dem jemand den "money" wert in der Version 1.03 ändert, seit dieser Version scheint aber eine zusätzliche "Sicherung" in das Programm eingefügt worden zu sein die diesen Vorgang erschwert.

Da für mich die meisten Begriffe ESI,ECX mov, comp etc. Böhmische Dörfer darstellen habe ich mich nun erst einmal mit den Registern und Befehlen ein wenig vertraut gemacht. Bis ich diese aber in einem Gebrauchsfähigen Zustand verstehe dauert es noch ein wenig, ich bitte daher um Nachsicht Smiling

Nun zu meinem Problem (Anhang 1)

Ich starte das Spiel,suche mir meinen Wert in diesem Fall
h00000028 = d40 / 02803854
nun suche ich was in diese Adresse schreibt
mov [esi+000001E4],eax

ich halte mich dann an die Anleitung aus dem Cheat Engine Forum und suche erst einmal die Pointer für den "Money" Betrag und den dazu passenden Xor Schlüssel

in diesem Fall
07ABD440 xor 07ABD450

ändere ich jetzt 02803854 sowie 07ABD440 xor 07ABD450 auf den von mir gewünschten Betrag, ändert sich dieser auch im Spiel so lange bis ich mein breakpoint entferne und durch "Run" den gewohnten Gang anstoße.

Möglicherweise müsste man die Änderung des wertes über eine Code Injection realisieren, dabei wüsste ich aber derzeit nicht wo und auch nicht zu 100% wie.

Ich gehe nun davon aus das der Original wert irgendwo gespeichert wird und an spätere Stelle mit dem von mir geänderten Wert verglichen wird z.B. mit comp und bei Unstimmigkeit eben der Original Code wieder verwendet wird.

Darum habe ich mir angesehen was auf die Adresse schreibt in der sich der durch Xor verschlüsselte Geldwert befindet und bin auf folgendes gestoßen (Anhang 2)
mov [edx],eax / 0046A5F7
da sich diese Zeile im Bereich "call 0046A5D0" befindet gehe ich davon aus das hier irgendwie der Geldwert zusammengesetzt und überprüft wird, dennoch erschließt sich mir der Ablauf des ganzen nur unvollständig.

Nun zu meiner Frage, ich möchte keine Lösung für das Problem, da ich doch sehr interessiert bin an dem Geschehen und würde so fern es mir möglich ist die Lösung selbst erarbeiten. Dafür bräuchte ich aber einen Tip wo und wie ich am besten verfahren sollte und das Problem an zu gehen und vielleicht einen Ratschlag welche Lektüre, Tutorial oder ähnliches mir weiter helfen könnte.

Ich habe hier im Forum schon so einiges gelesen, nur ist es schwer eine Unbekannte Sprache zu verstehen Smiling

Dies ist derzeit mein Lei*d*faden
x86 Assembly Guide

Mit freundlichen Grüßen
Injexdoor



[attachment=1333][attachment=1334]


RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - iNvIcTUs oRCuS - 26.02.2013

Hallo...

Als erstes Mal ein herzliches Willkommen in unserem Forum.
Sieht man auch nicht alle Tage das sich jemand hierher verirrt der um sämtliche Gepflogenheiten weiß mit allen Höflichkeitsfloskeln usw. usw...

Also deine Erklärung ist wirklich schon sehr durchwachsen und man sieht deine Anstrengung das Problem zu lösen.
Ich hab mir das mal schnell angeschaut und es ist wirklich nicht schwer. Aber, und das muss ich dazusagen, es ist vielleicht ein wenig kompliziert für einen Neuling in diesen Dingen.
Wie Du schon richtig rausgefunden hast manipuliert diese Zeile:
[code=ASM]004101C7 |. 8986 E4010000 |mov dword ptr [esi+000001E4h], eax[/code]deine Geldadresse...
Und wie auch schon richtig mitgekriegt hast ist der Call eine Zeile obendrüber der Knackpunkt an der Sache...
[code=ASM]004101C2 |. E8 09A40500 |call 0046A5D0h[/code]
Das Problem wo ich sehe ist die Sache das diese Subroutine sehr häufig im Code aufgerufen wird.
Wenn Du mal den nachfolgenden Codeabschnitt anschaust dann wirst Du erkennen das der nächste Aufruf bereits an Adresse 004101FDh erfolgt.



Und ein kurzer Blick in den Debugger offenbart folgendes...
Die Subroutine wird an allen nachfolgend aufgelisteten Adressen aufgerufen...
Zitat:Local calls/jumps from 00409B14, 00409B21, 00409B42, 00409EE0, 0040A015, 0040A14F, 0040A15C, 0040B1BE, 0040D03B, 0040D047, 0040F181, 0040F18D, 004101C2, 004101FD, 004116A7, 00416343, 0041FB1D, 00424D29, 0042BA69, 0042E7DD, 0042E803, 0042E9BA, ...
Und das ist nur ein Teil davon von wo aus auf diese Routine zugegriffen wird. Wie gesagt, ich hab mir die Sache mal angeschaut und bin niht wirklich ins Detail gegangen, aber so wie's aussieht ist Routine wirklich nur dazu da um den Geldwert zu encrypten/decrypten.
Durchaus möglich das ein Additionscheat hier auch möglich ist, aber ein einfacher permanenter Geldwert ist wohl am ehesten sinnvoll.
Du müsstest also am ehesten in dieser Subroutine unmittelbar vor oder nach der Entschlüsselung deine Cheat Option realisieren...

grEEtZ sILeNt heLLsCrEAm


RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - Acubra - 26.02.2013

Hey,
habs mir auch mal schnell angesehen (Demoversion des Spiels und meine Adressen sind andere?!).
Die Funktion, die so oft gecalled wird, en/decrypted nicht nur das Geld, sondern auch andere wichtige Adressen, wie z.B dein current threat level.


RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - iNvIcTUs oRCuS - 26.02.2013

Ja, wie gesagt so genau bin ch nicht ins Detail gegangen...
Wenn dem so ist dann könnte man diesen Money Cheat auch außerhalb des Calls realisieren.
Bedeutet zwar mehr Komplexität ist aber gut zu realisieren.


RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - Injexdoor - 27.02.2013

Nabend,

Acubra du hast vollkommen recht die Adressen sind a in der Demo voll kommen anders und b scheinbar auch abhängig von der Installation unterschiedlich, zumindest ist dies mein stand des Wissens.

Ich werde mich in erster Instanz an die Funktion des Calls halten und versuchen dort einen fixen Geldwert einzubinden.

Derzeit vielen dank an euch beide Smiling

Mit freundlichen Grüßen
Injexdoor












RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - iNvIcTUs oRCuS - 27.02.2013

Wie Acubra bereits schrieb laufen durch diesen Call mehrere Werte...
Entweder du machst deine Codeinjection in dieser Subroutine oder ausserhalb des Calls in der Nähe wo der Geldwert wieder geschrieben wird.
Wenn Du deinen Money Hack innerhalb des Calls lösen willst müsstest du in erster Linie auch sicherstellen das zu jenem bestimmten Zeitpunkt auch grade eine Geldadresse durchlaufen wird.
Das heißt Speicher ausfiltern und Code dementsprechend schreiben.
Oder, was vielleicht auch funktionieren könnte (was ich aber grade nicht probiert hab)... Du schreibst einen Call zu deiner eigenen Subroutine die dann im Prinzip auch nur für das Geld zuständig ist. Es ist quasi eine Kopie der Routine, die sich dann aber ausschließlich um das encrypten/decrypten des Geldwertes kümmert.

Wenn ich mal Lust und Laune hab werd ich das mal probieren ob das auch so funktioniert.
Aber eins sollte dir dennoch gewiss sein... Für einen Neuling auf diesem Gebiet ist das Spiel nicht unbedingt zu empfehlen zu hacken.
Aber wenn Du nicht aufgibst kannst du's durchaus schaffen...

grEEtZ sILeNt heLLsCrEAm


RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - Acubra - 27.02.2013

Hey,
mann muss theoretisch nur nen Pointer zur richtigen Adresse finden (z.B. mit der Pointersuch-Funktion von CE) und die Adresse dann mit esi+1e4 am Anfang der Routine abgleichen. Wenn beide gleich, dann Geldwert verändern und aus der Routine raus.


RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - Injexdoor - 28.02.2013

Nabend,

mit 14 Pointer-Scans war es mir nicht möglich unter ~200.000 gefunden Pointer zu gelangen. Somit scheint mir dies ebenfalls nicht ohne weiteres möglich zu sein.

Ich bleibe derweil an meinem Assembler Workout dran.

Mit freundlichen Grüßen

Injexdoor


RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - Acubra - 28.02.2013

Hey,
du kannst von den ~200.000 Pointern wahrscheinlich einen Großteil benutzen. Es gibt nicht nur einen Pointer zu einer Adresse, sondern in den meisten Fällen ziemlich viele. Ich bin mir nicht sicher, aber es sieht so aus als würden mehrere Sachen (außer Geld) durch die selbe Adresse laufen. Also auch die Kosten für die Tower u.s.w.. Ich schau mir das genauer wahrscheinlich am Wochenende an.
Ohne Assemblerkenntnisse kommt man bei dem Spiel sicherlich nicht wirklich weit und für nen Anfänger ist das schon echt harter tobak.


RE: Harvest Massive Encounter v1.18 Singleplayer Money cheat - iNvIcTUs oRCuS - 28.02.2013

So, also ich hab mir das nochmal angeschaut...

Durch den Befehl...
[code=ASM]004101C7 |. 8986 E4010000 |mov dword ptr [esi+000001E4h], eax[/code]
wird nur der Geldwert manipuliert.
Weiterhin hab ich das mal probiert die Routine zu kopieren und mit einer eigenen zu ersetzen. Funktioniert wunderbar und wäre definitiv ein Lösungsansatz wenn man nur den Money Cheat realisieren wollte.
Will man jetzt mehrere Cheats realisieren dann wäre man besser beraten man würde den Speicher ausfiltern und in der Subroutine selbst ansetzen.

grEEtZ sILeNt heLLsCrEAm