2011-08-27 10 views
5

Sto tentando di modificare un valore per Solitario come il punteggio.Aggiunta dell'indirizzo di base + Offset per modificare il valore

In ogni caso ho trovato gli indirizzi (usando CheatEngine) a cui puntano i puntatori ma sto avendo un codice di iniezione difficile per modificare il punteggio. Sono quasi sicuro che sia il modo in cui aggiungo gli offset al valore di base e non a Windows DEP, al mio metodo di iniezione o a qualsiasi altra cosa.

Ecco il codice che sto utilizzando.

#define BASE 0xFFAEAFA8 
#define fOFFSET 0x50 
#define sOFFSET 0x14 
#define VALUE 55555 


*(int*)(((*(int*) BASE) + fOFFSET) + sOFFSET) = VALUE; 

Ogni volta che si inietta questo codice, il mio gioco si blocca. Funziona bene se modifico i valori in Cheat Engine ma non nel codice.

+0

È 'sOFFSET' in unità di byte o interi (DWORD)? –

+7

Stai cercando di imbrogliare ... A _Solitaire_? – Nemo

+0

Esegui il programma in un debugger per ottenere maggiori dettagli su come si "blocca". –

risposta

0

Quello che stavo facendo male: avevo bisogno di usare il ReadProcessMemory() API per trovare l'indirizzo che un puntatore punta a. E quindi aggiungere gli offset.

0

prova:

volatile int * pScore = (int*)(BASE + fOFFSET + sOFFSET); 
*pScore = VALUE; 
Problemi correlati