我想知道在Unix等操作系统中更改子进程的虚拟地址空间是否合理。
我希望有能力(a)加载/卸载共享库
(b)写入子进程(非共享内存)的随机用户空间内存位置
我基本上希望在子进程的进程地址空间上完全控制(想像控件一样的Windows 95)。
我知道调试器在某种程度上实现了这个目的,但你实现了这个目标(系统调用使用,主题教程等)??
答案 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)读/写数据/代码段。