在分叉进程中设置内存权限

时间:2012-01-12 21:46:47

标签: linux process

我的目标是从父进程设置虚拟内存页面权限(就像分叉进程调用mprotect一样)。这可以用ptrace(1)还是其他魔法来完成?

谢谢!

1 个答案:

答案 0 :(得分:2)

可以完成(通过ptrace()确实; gdb可以做到这一点),但不是没有大量的重复,因为为了在另一个中调用一个函数进程中,你基本上必须设置它的寄存器和堆栈等来执行,然后继续执行该函数的进程。我所知道的一个程序可能有一些有用的资源/方法供您查看injectso。如果您查看injectso,请查看inject_code()函数。

此外,调用约定因平台而异,因此您必须为每个体系结构/操作系统等重新编写代码。