Results 1 to 1 of 1
I am having a problem accessing /proc/<pid>/mem range after mprotect has made it readable. It almost seems the procfs driver is not aware of the updated permissions. Any ideas or ...
Enjoy an ad free experience by logging in. Not a member yet? Register.
- 11-06-2011 #1Just Joined!
- Join Date
- Nov 2011
- Posts
- 1
Problem: Cannot access some valid ranges in /proc/<pid>/mem
I am having a problem accessing /proc/<pid>/mem range after mprotect has made it readable. It almost seems the procfs driver is not aware of the updated permissions. Any ideas or hints would be great!
- Process A ptrace ATTACHs to process B
- Process A cannot access of a given range in process Bs /proc/<pid>/mem due to the associated mapping in /proc/<pid>/maps being non-readable
- Process A requests process B use mprotect to mark given mapping as readable (mprotect returns success)
- Process A now should be able to read the range in /proc/<pid>/mem but can only read part of the range...
Example:
Mapping Before Request (Step 3):
Mapping After Request (Step 3):Code:7f63671af000-7f63673ae000 ---p 0000c000 08:01 269062 /lib/x86_64-linux-gnu/libnss_files-2.13.so
PROBLEM: std::ifstream can read a first part of the range from /proc/<pid>/mem, but cannot read the remaining range data. (By cannot read I mean !fin.good and errno = 5)Code:7f63671af000-7f63673ae000 r--p 0000c000 08:01 269062 /lib/x86_64-linux-gnu/libnss_files-2.13.so
Code:Mapping Range: 7f63671af000-7f63673ae000 (2044 Kbytes) Successfully Read Range: 7f63671af000-7f63671affff (4095 bytes, ~one page) Unsuccessfully Read Range: 7f63671b0000-7f63673ae000 (2040 Kbytes)


Reply With Quote
