Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/162.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ PROT_EXEC标志在mprotect中起什么作用?_C++_C_Linux - Fatal编程技术网

C++ PROT_EXEC标志在mprotect中起什么作用?

C++ PROT_EXEC标志在mprotect中起什么作用?,c++,c,linux,C++,C,Linux,从本页: 除了PROT_EXEC,我理解这些标志。打电话的效果如何 mprotect(ptr, size, PROT_EXEC); 从您链接到的手册页面: PROT_EXEC 内存可以被执行 它将内存标记为可执行的,这意味着它可以包含您可以调用和运行的代码。从您链接到的手册页面: PROT_EXEC 内存可以被执行 它将内存标记为可执行的,这意味着它可以包含您可以调用和运行的代码。那么它与函数有关吗?请详细说明。这根本不清楚是什么意思。例如,执行代码与读取或写入该地址时有何不同?你需要执行代码

从本页:

除了PROT_EXEC,我理解这些标志。打电话的效果如何

mprotect(ptr, size, PROT_EXEC);

从您链接到的手册页面:

PROT_EXEC

内存可以被执行


它将内存标记为可执行的,这意味着它可以包含您可以调用和运行的代码。

从您链接到的手册页面:

PROT_EXEC

内存可以被执行


它将内存标记为可执行的,这意味着它可以包含您可以调用和运行的代码。

那么它与函数有关吗?请详细说明。这根本不清楚是什么意思。例如,执行代码与读取或写入该地址时有何不同?你需要执行代码来完成所有这些事情,那么有什么区别呢?@AnonymousEntity
PROT_EXEC
意味着内存本身可以包含代码。如果检查进程的内存映射,则包含程序代码的内存将标记为
PROT_EXEC
,否则代码将无法执行。通过对一些完全不相关的内存使用
mprotect
PROT_EXEC
标志,意味着您可以动态分配一页内存,将一些任意代码复制到内存中,然后将其作为程序的一部分执行。那么这与函数有关吗?请详细说明。这根本不清楚是什么意思。例如,执行代码与读取或写入该地址时有何不同?你需要执行代码来完成所有这些事情,那么有什么区别呢?@AnonymousEntity
PROT_EXEC
意味着内存本身可以包含代码。如果检查进程的内存映射,则包含程序代码的内存将标记为
PROT_EXEC
,否则代码将无法执行。通过对一些完全不相关的内存使用
mprotect
PROT_EXEC
标志,您可以动态分配一页内存,将一些任意代码复制到内存中,然后像执行程序一样执行它。