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

前端之家收集整理的这篇文章主要介绍了什么是x86中的.data和.text?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
1
.data
value: .long 0x69
.text
#...

2

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

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

解决方法

.text部分是实际可执行指令所在的可执行文件的区域,.data部分是基于非堆栈的变量和常量所在的可执行文件的区域.为什么你不能在.text段修改值的原因是因为所谓的安全功能W^X(又名帕克斯Exec的盾,DEP等),这是在最现代的操作系统,其中OS不允许区域的启用在执行时内存不可写.它可以帮助缓解任意代码注入.

猜你在找的HTML相关文章