什么是x86中的.data和.text?

UXk*_*EZ7 5 x86

1

.data
value: .long 0x69
.text
#...
Run Code Online (Sandbox Code Playgroud)

2

.text
value: .long 0x69
#...
Run Code Online (Sandbox Code Playgroud)

我是一名学习x86的学生,我发现value如果它不在,我就无法修改.text.我一直试图解读原因,但我找不到它.有人可以带我到我能读到的地方或简要解释一下吗?

Jos*_*phH 5

.text节是可执行文件中实际可执行指令所在的区域,.data节是可执行文件中基于非堆栈的变量和常量所在的区域。您无法修改该.text部分中的值的原因是因为名为W^X(又名 PaX、Exec Shield、DEP 等)的安全功能,该功能在大多数现代操作系统上启用,其中操作系统不允许区域执行时内存不可写。它可以帮助减少任意代码注入。