Hi,
wie ich sehe ist dieses Thema schon etwas älter, aber ich hoffe ihr könnt mir dennoch helfen. Es mag sein das es zu meiner Frage schon einige Antworten im Forum gibt, aber bei der Menge an Themen möchte ich nicht die nächsten 3 Tage am PC sitzen und danach suchen ;-)
Außerdem glaube ich das meine Frage auch ganz gut hier rein passt.
Es geht also mal wieder um CE und um das schon oben von euch beschriebene Thema.
Ich versuche im Moment gerade einen Trainer für Demigod mit CE zu erstellen, leider stellt sich das für mich mich als ein großes Problem dar^^
Ich bin zwar kein unbedingter Anfänger in sachen Hex und programmieren, ( hab selber vor paar Jahren mal bissel mit VisualBasic rum gealbert), aber bei CE stoße ich gerade bei Demigod an meine Grenzen.
Folgender Sachverhalt -> Ich möchte einen +25000 Credits Trainer für Demigod erstellen.
Ich habe also Demigod gestartet, danach in CE den Prozess geladen (Kindergarten^^)
Danach ein Spiel gestartet, pausiert, und den Creditsbetrag in CE eingefügt (immernoch)
Im Suchmuster "Exact Value" und "4 Byte" -> nix gebracht (Grundschule^^)
Rumgetüfftelt bis ich 2 Addressen im Binär Addressbereich gefunden habe,
auf beide greift der gleiche Code zu. Ich also erstal zum testen halber den Wert auf
25000 gesetzt -> hat gefunzt wie erwünscht.
Wie ihr euch sicher denken könnt, sind das natürlich dynamische Adds gewesen und nur in Echtzeit zum Hexen geeignet, was mir und meinen Trainer nicht besonders viel bringt ;-) (ab hier wurde es schon schwer für mich )
Ich also ab ins Googlenet und hier gelandet, habe ich dieses Thema hier gefunden,
das mir schonmal wertvolle Tips geben konnte wegen der Sache mit dem
"Find out what accesses this address" und "Find out what write to this addresses"
Also hab ich erstmal mit diesen Pointer rum Experimentiert die ja auch im Tutorial beschrieben werden, ich muss allerdings gestehen das ich bis jetzt immernoch nicht so richtig weis, was die dinger nun machen und für was sie gut sind. Auf diese Frage hier im Thread wurde ja noch nicht geanu eingegangen.
Ich hab das mit den piontern erstmal aufgegeben und mit dem " Find out what write to this address" weiter gemacht. Bin dann auch auf einen Code gestoßen...
Um das alles jetzt ein wenig übersichtlicher zu gestalten werde ich euch das jetzt mal anhand eines Beispiels aufzeigen. Es wäre sehr sehr lieb wenn mir jemand sagen könnte wo mein Fehler liegt und meine Wissenslücken schließt :-))
Also->
Credits Add 1 12649329^3 Binär(13) 1000010100000
Credits Add 2 2ACBD125^3 Binär(13) 1000010100000
dann "Find out whats write to this address" (nur bei der ersten gemacht)
(spiel wieder aufgenommen und wieder pausiert) (Es sei gesagt das man im Spiel automatisch jede Sekunde bissel Credits bekommt...vll hilft das ja)
-> 00ad69f3 - 89 53 04 - mov (ebx+04),edx
Dann "More information" dann "Show disassembler" dann Sprung auf HexAdd 00AD69F3 vom "Extra info" Fenster dann "Strg+A" dann "Template" dann "Code injection" als Add wieder 00AD69F3 vom "More information"Fenster.Dann neuen Code rein.
Soweit bis hierher... (war garantiert schon iwas falsch^^)
Das ganze sah dann so aus ->
-------------------------------------------------------------------------------------
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
00AD69F3:
jmp newmem
returnhere:
newmem:
Add [12649324],100
originalcode:
mov [ebx+04],edx
pop ebx
pop ecx
exit:
jmp returnhere
-------------------------------------------------------------------------------------
Das daraus kein +25000 Credits Trainer mehr wird ist mir klar nur ich dachte das dann ein Effeckt eintritt das man egal wieviel Credits man pro Sec bekommt, man immer nochmal 100 dazu.
So das funz nicht aus irgend einem Grund.
Ich vermute mal sehr stark das es nicht an meinem Wissen über Assembler und solchen Codes liegt, -> da ich keins habe^^
Ziel dieser ganzen Übung ist es für mich das ich etwas über die verwendung von CE lernen kann das nicht nur mit Sinnlosen Java Highscore Hexen zu tun hat^^
sondern ich auch iwann mal einige nützliche Trainer erstellen kann.
(Hab ich mit CE auch schon, war aber auch keine so Umfangreiche App wie hier)
So ich hoffe jemand kann mirhelfen wo der Fehler liegt.
Liegt es ->
a, an meinem Code
b, an den Binären Adds, das da iwas anders ist das man beachten muss
c, hab ich mir iwo ne falsche HexAdd zusammen gesucht
oder
d, an a, b und c ^^
PS: Am besten weis ich über meine eigene Unwissenheit bescheit, also bitte nehmt es mir nicht übel das bei mir alles HexAdd und Code heist, auch wenn das "Offset",String und "Hau mich Blau" heisen müsste^^
Mfg TearOfGaia