VirtualProtectEx 的 Linux 等效项?

Posted

技术标签:

【中文标题】VirtualProtectEx 的 Linux 等效项?【英文标题】:Linux equivalent for VirtualProtectEx? 【发布时间】:2010-09-27 02:36:17 【问题描述】:

我正在做一些简单的JITing,并在Windows 下使用VirtualProtectEx 将页面标记为可执行。 在 Linux 下,最好是在其他类似 POSIX/Unix 的操作系统下有什么等价物?

【问题讨论】:

【参考方案1】:

您正在寻找mprotect 并且可能也在寻找mmap。请注意,与 Windows 不同,进程 A 无法更改进程 B 的内存映射(缺少 ptrace 的可怕技巧)。

【讨论】:

...请记住,某些强化内核会阻止您同时设置写入和执行权限 (PROT_WRITE | PROT_EXEC)。 是的,进程也可以通过映射它们的 /proc/pid/mem 的一部分来改变彼此的内存 MarkR:进程可以使用 /proc/pid/mem 或各种其他标准 API(shm*mmapMAP_SHARED写入彼此的内存,等等),但这不是我所说的“不能改变另一个进程的内存映射”的意思。 VirtualProtectEx 和它的朋友可以让你在另一个进程的地址空间中更改页面权限或分配/释放内存;这就是在 Unix 上如果没有肮脏的技巧就无法做到的。 (奇怪的是,除非我遗漏了什么,Windows 不允许您对除您自己以外的任何人执行 MapViewOfFile(Ex) 操作。)

以上是关于VirtualProtectEx 的 Linux 等效项?的主要内容,如果未能解决你的问题,请参考以下文章

Linux基础教程

linux查找文件路径的命令,Linux查找文件路径

linux到底是国内还是国外的??

linux是啥~?

开发linux 程序需要装linux系统吗

linux 内核是啥, 本人有linux基础