在安全领域,存在堆利用和堆栈粉碎攻击。
但我发现/proc/*/maps
文件,堆和堆栈段,
只有rw-p
- 权限。
这两个部分没有执行权限。
我的工程师朋友告诉我,如果您在英特尔CPU中获得rw
权限,您的代码将自动获得执行权限。
但我不明白为什么英特尔会做这个设计?
答案 0 :(得分:2)
这是因为Linux中的所有段(Windows也都具有相同的基址和相同的大小)。代码始终通过代码段访问,代码段覆盖与堆栈(或任何其他)段完全相同的区域,因此您可以在任何地方执行代码。
修改强>
你可以在这里阅读更多内容:http://www.intel.com/Assets/en_US/PDF/manual/253668.pdf 第3.2章使用部分