28/08/09 9:04
noitide
si grazie..
poi vdo ek ci sono anke i sorgenti.. comnq ora ho provato a usare tsearch ke è un programma cheat e ho salvato i valori ke mi interessano in un file .cht e poi ho provato a riavviare il pc ma il cheat funziona ankora quindi o il blocco di memoria utilizzato è sempre quello o c'è dell'altro..
EDIT: ho fatto il tutorial e qlcs penso di aver capito.. sta di fatto ke io non posso cambiare valori x capire quale valore è quello giusto, i miei valori sono statici e una volta caricati sono li e non li posso più modificare..
Ultima modifica effettuata da noitide 28/08/09 9:44
aaa
28/08/09 11:55
NewAge
Ma il programma è tuo e devi modificare i tuoi valori del tuo programma usando gli address ( credo che sia piuttosto scontata la risposta ( no ))? Perché è così credo che tu possa già fissare l'address all'interno del programma
aaa
28/08/09 15:17
manvb.net
Si, gli address coincidono sempre(perchè sono relativi e poi la cache non c'entra niente) comunque non puoi risalire con semplicità ad una variabile nel processo se non puoi modificare il suo valore per testarla di volta in volta. Poi devi stare attento alle variabili dinamiche(puntatori) perchè il loro puntatore è statico ma punta ad una locazione dinamica, che può cambiare ad ogni avvio del programma. Non hai modo di saper se una variabile è un valore o un puntatore(in vb.net ad esempio tutte le istanze di classi sono puntatori mentre le strutture e i tipi di base sono valori).
Quindi credo che quello che stai cercando di fare sia molto complicato, se non impossibile!
aaa
28/08/09 17:28
noitide
ok ho capito grazie.. ma ipotizzando ke riesco a trovare quel valore ke mi interessa, cambiandolo in un modo molto scomodo, come faccio a trovare lo stesso valore su un altro pc? dovrei rifare la ricerca oppure è un percorso assoluto in qualsiasi pc? grazie..
aaa
28/08/09 19:22
NewAge
in pratica, se sono puntatori, ad ogni avvio del programma, ( sia che tu lo avvii sul tuo computer, sia che tu lo avvii su di un altro ) devi ricercare l'address
aaa
28/08/09 21:06
manvb.net
Allora, se sono variabili statiche(allocate in fase di compilazione) hanno sempre lo stesso indirizzo relativo(a prescindere dal pc, dal sistema operativo, dalla ram, ecc...). Se invece sono dinamiche si tratta di aree di dati referenziate da un puntatore che vengono allocate con new(in vb.net e c++ ad esempio). New(malloc in c) chiama un api di sistema a cui viene richiesta memoria e che restituisce un puntatore a tale memoria(il puntatore è una variabile statica che contiene l'indirizzo di un'area dinamicha), quindi non è detto che il sistema restituisca sempre la stessa area di memoria, ma questa cambia a causa di vari fattori.
In pratica si, devi ricercare ogni volta la variabile(dinamica), in quanto tu non puoi sapere se la cella di memoria che stai leggendo è una variabile statica(o parte), un puntatore(o parte) o un'area dinamica(o parte), è una cosa comunque molto complicata da fare.
aaa