5

1

.data
value: .long 0x69
.text
#...

2

.text
value: .long 0x69
#...

我是一名学习 x86 的学生,我注意到value如果它在.text. 我一直在尝试阅读原因,但找不到。有人可以带我到可以阅读或简要解释的地方吗?

4

1 回答 1

4

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

于 2013-01-27T03:30:53.403 回答