c - 在 NOP-Slide 中获取 SIGSEGV
解决方案
但是当程序返回第一个 NOP 操作时,我得到一个 SIGSEGV
看起来你NOP
的 s 在堆栈上。
默认情况下,堆栈不是可执行的,因此SIGSEGV
是预期的。您可以检查您的二进制文件是否是为不可执行的堆栈构建的,如下所示:
readelf -Wl a.out | grep GNU_STACK
GNU_STACK 0x000000 0x0000000000000000 0x0000000000000000 0x000000 0x000000 RW 0x10
注意RW
而不是RWE
权限。
要使用可执行堆栈构建程序,请-Wl,-z,execstack
在链接时使用。
推荐阅读
- html - 使用 rvest 抓取 ID 属性
- ionic-framework - 无法绑定到“ngForOf”,因为它不是“div”的已知属性。*ngFor 不适用于 ionic 5
- python - 如果另一列中的值彼此相邻,则对数据框中的列值求和
- google-bigquery - 为什么 BigQuery 执行引擎 Dremel 需要在处理数据之前将数据从 BigQuery 文件系统加载到本地存储?
- laravel - 创建三个表之间的关系
- reactjs - React Redux - 如何进行双重调度
- python - 如何在 TF2 的 Keras Lambda 层中包装冻结的 Tensoflow 图?
- r - 使用聚合的加权平均值
- javascript - 使用 JQuery 使用 Checkbox 按数据属性过滤 div 内容
- ios - 如何修复不兼容的块指针类型发送错误?