1

我的系统是 x86-64 Linux,我尝试在系统上执行堆栈或数据段中的代码。具体来说,我首先将一条二进制指令放入一个整数数组中(我尝试将数组放入堆栈或数据段中),然后将普通函数返回地址替换为数组地址。每次,我都会遇到分段错误。

我的问题是,x86-64 是否有一些分段保护机制来停止堆栈或数据段中的执行行为?如果是真的,这是否意味着通过缓冲区溢出的代码注入在 x86-64 架构中完全停止了?

4

1 回答 1

1

几乎所有现代通用架构都有办法阻止您执行某些内存区域。操作系统是否使用这些工具取决于操作系统。Linux 禁用堆栈上的执行以及易于执行的架构上的大多数数据。x86_64 就是其中之一。

于 2013-01-08T13:02:30.617 回答