Come scrivere nello spazio degli indirizzi di un altro processo usando python sotto Ubuntu Linux? I miei tentativi:Python: scrivere nella memoria di un altro processo sotto linux
1) Utilizzo del file virtuale/proc/$ PID/mem e ricerca dell'indirizzo. Ho usato con successo per leggere la memoria, ma il tentativo di scrivere provoca un IOError:
fd=open("/proc/"+pid+"/mem","r+")
fd.seek(address,0)
fd.write("ABC")
uscita:
IOError: [Errno 22] Invalid argument
2) Il tentativo di utilizzare la libreria python-ptrace come suggerito in altri thread. Tuttavia, non riesco a trovare una buona documentazione o codice di esempio.
Nota: questo non è un problema di autorizzazioni, in esecuzione come root produce lo stesso comportamento.
'rw' non è un valore valido per' open() '. Per aprire un file sia per la lettura che per la scrittura dovresti invece usare 'r +'. –
Sei sicuro che non sia più appropriato usare l'IPC esplicito (che può includere la memoria condivisa btw)? –
Modificato 'rw' in 'r +' ma ottengo ancora un IOError – user1998059