2013-01-21 18 views
5

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.

+1

'rw' non è un valore valido per' open() '. Per aprire un file sia per la lettura che per la scrittura dovresti invece usare 'r +'. –

+1

Sei sicuro che non sia più appropriato usare l'IPC esplicito (che può includere la memoria condivisa btw)? –

+0

Modificato 'rw' in 'r +' ma ottengo ancora un IOError – user1998059

risposta

Problemi correlati