Stavo pensando a un quesito
"Se ho 2 miei processi in esecuzione, come posso fare che l'uno possa cambiare le variabili dell'altro?"
Che poi si è formalizzato in
Avendo 2 processi, di cui 1 sicuramente ha una variabile x, come posso fare che un altro processo ne legga il valore, lo incrementi di 1 e lo riscriva?
Ho pensato ovviamente a Read e WriteProcess Memory, dandomi però alcuni dubbi
[list=a][*] Per poter usare Read e Write process memory, un processo deve essere aperto usando gli adeguati flags. Ciò vuol dire che CHIUNQUE può scrivere memoria su un altro processo. Non è forse questa l'origine di molti bug ed exploit? Perchè fornire una funzionalità così potenzialmente pericolosa? Perchè non eliminarla, o almeno permetterla per concessione di un processo, non per una pretesa?
Esiste un modo per proteggere l'area di memoria di un processo?[*] Anche se fosse, dovrei sapere l'indirizzo di memoria di x. Come averlo? Banalmente avevo pensato di scriverlo su file e poi leggerlo, ma penso che l'indirizzo sia relativo allo spazio di memoria virtuale assegnato al processo stesso, quindi sarebbe un indirizzo non valido se usato in un altro processo. Il qualificatore volatile può aiutare in questi casi?[*] Esistono altri metodi per permettere la modifica di classi, variabili, strutture e quant'altro tra processi diversi? Ovviamente evitiamo la scrittura dei dati su file,quello è "ovvio"[/list=a]
Grazie e scusate le eventuali sciocchezze dette.