Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Leggere locazione di memoria specifica.
Forum - C/C++ - Leggere locazione di memoria specifica.

Avatar
xshell32 (Normal User)
Rookie


Messaggi: 34
Iscritto: 08/02/2008

Segnala al moderatore
Postato alle 23:39
Lunedì, 31/05/2010
Buonasera a tutti.

Avrei bisogno di leggere il valore contenuto in una determinata cella della RAM. Penso di dover utilizzare  i puntatori... ma come posso fare?

Ad esempio, se volessi leggere la cella 0x0004?

Grazie in anticipo.

PM Quote
Avatar
nessuno (Normal User)
Guru^2


Messaggi: 6403
Iscritto: 03/01/2010

Segnala al moderatore
Postato alle 23:50
Lunedì, 31/05/2010
Partiamo dal concetto che in un sistema moderno (in cui la memoria è virtualizzata) non accedi affatto alla cella di RAM con quell'indirizzo, ma soltanto ad un byte dello spazio di indirizzamento del processo corrente (e probabilmente non è quello che ti aspetti che avvenga o non è quello che desideri).

Inoltre, se quell'indirizzo particolare non è mappato nello spazio di indirizzamento del processo corrente, avrai un read fault (classico messaggio di Windows ... non si poteva accedere in lettura ...) e il programma termina.

In pratica, il codice è

Codice sorgente - presumibilmente C/C++

  1. unsigned char *loc = (unsigned char *)0x4;
  2.         printf("Valore: %d\n", *loc);



ma non ti meravigliare se avrai un errore (come ti dicevo).

P.S. Se il tuo scopo è leggere/modificare un valore presente in un gioco mentre si sta eseguendo, allora la strada è un'altra ma, personalmente non intendo parlarne ...


Ricorda che nessuno è obbligato a risponderti e che nessuno è perfetto ...
---
Il grande studioso italiano Bruno de Finetti ( uno dei padri fondatori del moderno Calcolo delle probabilità ) chiamava il gioco del Lotto Tassa sulla stupidità.
PM Quote