Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Scrittura su indirizzi
Forum - C/C++ - Scrittura su indirizzi

Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 15:44
Giovedì, 23/07/2015
Questo topic è stato chiuso dal moderatore

Scusate non ho ben capito come funziona la questione in C++.

Riesco a leggere gli indirizzi in questo modo

Codice sorgente - presumibilmente Plain Text

  1. ReadProcessMemory(phandle,(void*)address,&value,sizeof(value),0);
  2.         cout << value << "\n";



Mentre per scrivere ho qualche problema.
Dove sbaglio?

Soluzione 1
Codice sorgente - presumibilmente C/C++

  1. int valore= 5;
  2. WriteProcessMemory(phandle, (LPVOID)0x070644F4, &valore, (DWORD)sizeof(valore), NULL);




Soluzione 2
Codice sorgente - presumibilmente C/C++

  1. int valore = 5;
  2. WriteProcessMemory(phandle,(void*)address,&valore ,sizeof(valore ),0);



Soluzione 3
Codice sorgente - presumibilmente C++

  1. #define Indirizzo = 0x070644F4
  2. #define Indirizzo_offset = (indirizzo + 0x4);
  3.  
  4. inline unsigned volatile& prova() {
  5.     return *reinterpret_cast<unsigned volatile*>(Indirizzo + 0x4);
  6. }




Nel primo e secondo caso non succede nulla.
non scrive sull'indirizzo e non ne capisco il motivo.



nel terzo caso ho un errore sul return nella compilazione.
qualcuno riesce ad aiutarmi? grazie mille.

ho provato anche aggiungendo questo
ma ancora nulla mentre in C# mi funziona tutto regolarmente chiamando le winapi.

Codice sorgente - presumibilmente C/C++

  1. unsigned long protect;
  2.         VirtualProtectEx(phandle, (void*)address, 4,PAGE_EXECUTE_READWRITE, &protect);



Ultima modifica effettuata da Thejuster il 23/07/2015 alle 16:30


PM
Avatar
Thejuster (Member)
Guru^2


Messaggi: 1704
Iscritto: 04/05/2008

Segnala al moderatore
Postato alle 9:55
Venerdì, 24/07/2015
Ho risolto grazie potete chiudere.
In pratica avevo dato l'accesso solo di lettura e non con tutti i privilegi.

Un errore banalissimo...


PM