更改子进程的进程虚拟地址空间

时间:2012-12-12 03:53:28

标签: unix parent-child virtual-address-space

我想知道在Unix等操作系统中更改子进程的虚拟地址空间是否合理。

我希望有能力

(a)加载/卸载共享库

(b)写入子进程(非共享内存)的随机用户空间内存位置

我基本上希望在子进程的进程地址空间上完全控制(想像控件一样的Windows 95)。

我知道调试器在某种程度上实现了这个目的,但你实现了这个目标(系统调用使用,主题教程等)??

1 个答案:

答案 0 :(得分:1)

您需要查看ptrace

 ptrace() provides tracing and debugging facilities.  It allows one
 process (the tracing process) to control another (the traced process).

您可以使用PTRACE_ATTACH开始跟踪,PTRACE_GETREGS(SETREGS)来获取/设置寄存器,PTRACE_PEEKUSER(POKEUSER)来读/写用户数据和PTRACE_PEEKDATA( POKEDATA)读/写数据/代码段。