我的目标是从父进程设置虚拟内存页面权限(就像分叉进程调用mprotect
一样)。这可以用ptrace(1)
还是其他魔法来完成?
谢谢!
答案 0 :(得分:2)
它可以完成(通过ptrace()
确实; gdb
可以做到这一点),但不是没有大量的重复,因为为了在另一个中调用一个函数进程中,你基本上必须设置它的寄存器和堆栈等来执行,然后继续执行该函数的进程。我所知道的一个程序可能有一些有用的资源/方法供您查看injectso。如果您查看injectso,请查看inject_code()
函数。
此外,调用约定因平台而异,因此您必须为每个体系结构/操作系统等重新编写代码。