2013-01-21 8 views
5

Làm thế nào để ghi vào không gian địa chỉ của một quá trình khác bằng cách sử dụng python trong Ubuntu Linux? Nỗ lực của tôi:Python: ghi vào bộ nhớ của một quá trình khác theo linux

1) Sử dụng tệp ảo/proc/$ PID/mem và tìm kiếm địa chỉ. Tôi đã sử dụng thành công nó để đọc bộ nhớ, nhưng cố gắng viết gây ra IOError:

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

Output:

IOError: [Errno 22] Invalid argument 

2) Cố gắng sử dụng thư viện python-ptrace như đề xuất trong đề khác. Tuy nhiên, tôi không thể tìm thấy tài liệu hay mã ví dụ hay.

Lưu ý: đây không phải là vấn đề về quyền, chạy khi root tạo ra cùng một hành vi.

+1

'rw' không phải là giá trị chế độ hợp lệ cho' mở() '. Để mở một tệp cho cả đọc và viết, bạn phải sử dụng 'r +' để thay thế. –

+1

Bạn có chắc chắn không thích hợp hơn khi sử dụng IPC rõ ràng (có thể bao gồm btw bộ nhớ chia sẻ) không? –

+0

Thay đổi 'rw' thành 'r +' nhưng tôi vẫn nhận được IOError – user1998059

Trả lời