Also ich arbeite zur Zeit an einem Endless Space Trainer hatte gestern auch Codeinject für Geld und Forschung heute wollte ich testen bevor ich es veröffentliche und was sehe ich da es funktioniert nicht mehr.
Welche Gründe könnte es haben?
Da haste schlechte Karten..
Meine Glaskugel ist grade beim TÜV.
Und Hellsehen kann niemand hier
Zeig mal bitte deine CE-Scripts.
Hey,
wenn du das Spiel über Steam erworben hast, kann es sein das es ein Update gab. Somit hätten sich die Offsets (Adressen) geändert.
Machst du deine CodeInjection in einer .dll? Diese hat nämlich bei jedem Neustart des Spiels eine andere BaseAdresse.
Die Basisadresse kann auch bei einer EXE Datei variieren...
Erstes Indiz dafür wäre wenn die Basisadresse nicht 0x400000h ist.
Also mein CJ sah zu erst so aus:
Code:
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
fstp dword ptr [ebx+18]
mov dword ptr [ebx+18], (float)9999999
cmp [ebx],ebx
exit:
jmp returnhere
4668B880:
jmp newmem
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
4668B880:
fstp dword ptr [ebx+18]
cmp [ebx],ebx
//Alt: db D9 5B 18 39 1B
|
Nach dem ich das Spiel neu gestartet hatte funktioniert er nicht mehr, nun noch einmal nach CJ und sehe da Basisadresse hat sich geändert so was hatte ich noch nie.
Code:
[ENABLE]
//code from here to '[DISABLE]' will be used to enable the cheat
alloc(newmem,2048) //2kb should be enough
label(returnhere)
label(originalcode)
label(exit)
newmem: //this is allocated memory, you have read,write,execute access
//place your code here
originalcode:
fstp dword ptr [ebx+18]
mov dword ptr [ebx+18], (float)9999999
cmp [ebx],ebx
exit:
jmp returnhere
090FF5E8:
jmp newmem
returnhere:
[DISABLE]
//code from here till the end of the code will be used to disable the cheat
dealloc(newmem)
090FF5E8:
fstp dword ptr [ebx+18]
cmp [ebx],ebx
//Alt: db D9 5B 18 39 1B
|
Lässt sich aber ganz einfach lösen...
Deine absoluten Adressangaben müssen einfach nur anders geschrieben werden.
Z.B. wird aus...:
Code:
4668B880:
jmp newmem
returnhere:
|
Das hier...:
Code:
"EndlessSpace"+0815:
jmp newmem
returnhere:
|
In Cheat Engine einfach im Memory Viewer die Tastenkombination [STRG]+[M] drücken um zwichen den Modi hin und her zuschalten.
(10.01.2013, 16:41)sILeNt heLLsCrEAm schrieb: [ -> ]Lässt sich aber ganz einfach lösen...
Deine absoluten Adressangaben müssen einfach nur anders geschrieben werden.
Z.B. wird aus...:
Code:
4668B880:
jmp newmem
returnhere:
|
Das hier...:
Code:
"EndlessSpace"+0815:
jmp newmem
returnhere:
|
In Cheat Engine einfach im Memory Viewer die Tastenkombination [STRG]+[M] drücken um zwichen den Modi hin und her zuschalten.
Das funktioniert bei mir nicht, wenn ich zur Adresse 4668B880 springe und STRG+M drücke passiert nichts.
(10.01.2013, 13:26)sILeNt heLLsCrEAm schrieb: [ -> ]Die Basisadresse kann auch bei einer EXE Datei variieren...
Erstes Indiz dafür wäre wenn die Basisadresse nicht 0x400000h ist.
Hey,
das stimmt natürlich. Hab den Fall jetzt aussen vor gelassen, da ich das bis jetzt bei sogut wie keinem Spiel feststellen konnte.
(10.01.2013, 17:24)SourceCoder schrieb: [ -> ]Das funktioniert bei mir nicht, wenn ich zur Adresse 4668B880 springe und STRG+M drücke passiert nichts.
Alternativ kannst du auch im Memory Viewer --> View --> Show module addresses auswählen.
(10.01.2013, 18:32)Acubra schrieb: [ -> ] (10.01.2013, 13:26)sILeNt heLLsCrEAm schrieb: [ -> ]Die Basisadresse kann auch bei einer EXE Datei variieren...
Erstes Indiz dafür wäre wenn die Basisadresse nicht 0x400000h ist.
Hey,
das stimmt natürlich. Hab den Fall jetzt aussen vor gelassen, da ich das bis jetzt bei sogut wie keinem Spiel feststellen konnte.
(10.01.2013, 17:24)SourceCoder schrieb: [ -> ]Das funktioniert bei mir nicht, wenn ich zur Adresse 4668B880 springe und STRG+M drücke passiert nichts.
Alternativ kannst du auch im Memory Viewer --> View --> Show module addresses auswählen.
Also so bald ich Memory Viewer öffne und Show module addresses mache bekomme ich die absoluten Adressangaben, so bald ich goto adresses mache und zur 4668B880 Springe und dort das gleiche tun möchte passiert bei Show module addresses nichts.