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.
'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 +'. –
Czy na pewno nie jest bardziej odpowiednie używanie jawnego IPC (który może obejmować btw)? –
Zmieniono "rw" na "r +", ale wciąż otrzymuję IOError – user1998059