2

我想知道在 Unix 之类的操作系统中更改子进程的虚拟地址空间是否可行。我想有能力

(a) 加载/卸载共享库

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

我基本上想要对子进程的进程地址空间进行完全控制(想想 windows 95 之类的控制)。

我知道调试器在一定程度上实现了这一点,但是你实现了这一点(要使用的系统调用,关于主题的教程等)?

4

1 回答 1

2

您需要查看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)读取/写入数据/代码部分。

于 2012-12-12T04:30:09.890 回答