linux - 在 fork 进程中设置内存权限

标签 linux process

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

谢谢!

最佳答案

可以完成(确实通过ptrace()gdb可以做到),但并非没有很多花招,因为为了在另一个进程中调用一个函数,你基本上必须设置它的寄存器和堆栈等以供执行,然后继续进程,这将执行该函数。我突然想到的一个程序可能有一些有用的源代码/方法供您查看,它是 injectso。 .如果您查看 injectso,请查看 inject_code() 函数。

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

关于linux - 在 fork 进程中设置内存权限,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8842835/

相关文章:

linux - 如何在shell脚本中获取子进程和后代进程的执行时间?

c++ - 有什么区别。 C++ 中的 getpid 和 gettid 之间

java - 在 OS X 上使用 Runtime.exec() 打开应用程序

Unix 进程图困惑

linux - 尝试了解 PATH 在 Linux 上的设置方式(Ubuntu 16.04 上的 bash)

linux - Tightvnc 服务器和鳄梨酱

linux - linux perl中从任何编码到utf-8的文件编码

c++ - 在新进程中运行方法并等待它们完成

r - 目录问题,无法安装 RStudio Server Packages Ubuntu

c - C程序运行时出现错误