linux - 为什么在溢出 .data 部分时不获取 SIGSEGV
问题描述
有一个像这样的组装程序对我来说很好,我不知道为什么
section .data
name: db "abcdef"
section .text
global _start
_start:
std
mov rsi, name+5
mov rdi, name+1050 ; should be pointing to non mapped memory
mov rcx, 6
rep movsb
; calling sys_exit
这不是应该写入仍未映射的内存部分吗,因为没有brk
或sbrk
尚未进行调用以增加程序中断(即程序中断= .data end),.bss
程序中没有部分,我们是写入一个远远超过应该分配给.data的6个字节的区域。
解决方案
推荐阅读
- javascript - Vue vue.config.js 代理 404
- python - 从 Python 调用 CustomVision 预测 API - 第二次不是魅力
- acumatica - 为什么我无法在我的交叉引用 (INItemXRef) 表中获得“当前”记录?
- discord - 是否有可能让 awaitReactions 给每个做出反应的人一个角色?
- laravel - 带有“LIKE”语句的雄辩查询在 Laravel 6 中不起作用
- laravel - Laravel 419 页面过期,同时通过刀片中的表单发布请求
- python - 有没有办法在保留章节元数据的同时下载视频?
- three.js - 如何相对于向量旋转笛卡尔坐标?
- android - 谷歌地图填充底部不适用于颤振Android
- regex - GSheets - 删除*后*一个单词的所有内容(但保留单词)