gpt4 book ai didi

c - malloc分配的内存保护标志是什么?

转载 作者:太空狗 更新时间:2023-10-29 17:20:09 24 4
gpt4 key购买 nike

根据 this thread ,malloc分配的内存至少有PROT_READ | PROT_EXEC,否则无法执行包含的函数。

man malloc 没有提到任何关于保护的问题。

最佳答案

malloc() 通常会返回具有读写权限的内存。一些架构(例如:较旧的 x86)可能不允许以直接的方式禁用执行权限,但这只是平台的缺陷。

如果你想从你分配的内存中执行代码,你必须明确地给予执行权限,并且可能你必须删除写权限,因为在同一内存上同时拥有写权限和执行权限被认为是潜在危险的在某些系统上(通常称为 W^X)。

还有其他几个线程从程序员分配的内存中执行代码:

Allocate executable ram in c on linux
Is it possible to execute code from the stack in standard C?

关于c - malloc分配的内存保护标志是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6315296/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com