2013-01-21 8 views
5

Jak napisać do przestrzeni adresowej innego procesu używając Pythona pod Ubuntu Linux? Moje próby:Python: zapisywanie do pamięci innego procesu pod linuxem

1) Korzystanie z pliku wirtualnego/proc/$ PID/mem i szukanie adresu. I z powodzeniem stosować go do odczytu pamięci, ale próby zapisu powoduje IOError:

fd=open("/proc/"+pid+"/mem","r+") 
fd.seek(address,0) 
fd.write("ABC") 

wyjściowa:

IOError: [Errno 22] Invalid argument 

2) Próba korzystania z biblioteki python-ptrace jak sugerowano w innych wątkach. Jednak nie mogę znaleźć dobrej dokumentacji lub kodu przykładowego.

Uwaga: nie jest to problem z uprawnieniami, działając jako root, wywołuje to samo zachowanie.

+1

'rw' nie jest prawidłową wartością trybu dla' open() '. Aby otworzyć plik zarówno do odczytu, jak i zapisu, musisz zamiast tego użyć 'r +'. –

+1

Czy na pewno nie jest bardziej odpowiednie używanie jawnego IPC (który może obejmować btw)? –

+0

Zmieniono "rw" na "r +", ale wciąż otrzymuję IOError – user1998059

Odpowiedz

Powiązane problemy