striker159
Lt. Junior Grade
- Registriert
- Dez. 2008
- Beiträge
- 332
hallo
ich beschäftige mich gerade damit, trainer zu programmieren. mit festen speicheradressen hab ich keine probleme mehr.
auch code injection habe ich bereits geschafft (falls es bedeutet, code ,der normalerweise ausgeführt wird, mit seinem eigenen zu ersetzen,zb mit nop)
nun will ich in einem spiel einen wert beliebig ändern, auf den mit einem pointer gezeigt wird. bei code injection stürzt das spiel leider ab,weshalb ich den start pointer finden muss.
den finde ich allerdings nicht :/
bisher kam ich soweit (mit CE):
alle genannten adressen ändern sich bei jedem start des spiels
der wert X befindet sich in adresse 0D458A68
um den pointer rauszufinden habe ich geguckt, welcher anweisung in die adresse schreibt
0072d069 - db 5e 20 - fistp dword ptr [esi+20] ->offset ist dann 20, der pointer muss also auf adresse 0D458A48 zeigen
so kam ich dann bis zu diesem punkt.
0D458A68 beinhaltet X
06632060 zeigt auf 0D458A48 (offset 20)
072C35F8 zeigt auf 06632028 (offset 38 ).
da bei jedem spielneustart anstelle von 072C35F8 etwas anders steht, muss es noch mind. einen weiteren pointer geben.
also wieder geguckt,welche anweisung in die adresse schreibt: 0072A65C - mov [edi+04],eax ->offset 4
es gibt allerdings dann keinen pointer mehr,der auf 072C35F4 zeigt X(
hat jemand eine lösung dafür,bzw eine andere möglichkeit den wert zu verändern ( ohne jedesmal CE zu benutzen) ?
ich beschäftige mich gerade damit, trainer zu programmieren. mit festen speicheradressen hab ich keine probleme mehr.
auch code injection habe ich bereits geschafft (falls es bedeutet, code ,der normalerweise ausgeführt wird, mit seinem eigenen zu ersetzen,zb mit nop)
nun will ich in einem spiel einen wert beliebig ändern, auf den mit einem pointer gezeigt wird. bei code injection stürzt das spiel leider ab,weshalb ich den start pointer finden muss.
den finde ich allerdings nicht :/
bisher kam ich soweit (mit CE):
alle genannten adressen ändern sich bei jedem start des spiels
der wert X befindet sich in adresse 0D458A68
um den pointer rauszufinden habe ich geguckt, welcher anweisung in die adresse schreibt
0072d069 - db 5e 20 - fistp dword ptr [esi+20] ->offset ist dann 20, der pointer muss also auf adresse 0D458A48 zeigen
so kam ich dann bis zu diesem punkt.
0D458A68 beinhaltet X
06632060 zeigt auf 0D458A48 (offset 20)
072C35F8 zeigt auf 06632028 (offset 38 ).
da bei jedem spielneustart anstelle von 072C35F8 etwas anders steht, muss es noch mind. einen weiteren pointer geben.
also wieder geguckt,welche anweisung in die adresse schreibt: 0072A65C - mov [edi+04],eax ->offset 4
es gibt allerdings dann keinen pointer mehr,der auf 072C35F4 zeigt X(
hat jemand eine lösung dafür,bzw eine andere möglichkeit den wert zu verändern ( ohne jedesmal CE zu benutzen) ?