首页 > 解决方案 > 为什么在溢出 .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

这不是应该写入仍未映射的内存部分吗,因为没有brksbrk尚未进行调用以增加程序中断(即程序中断= .data end),.bss程序中没有部分,我们是写入一个远远超过应该分配给.data的6个字节的区域。

标签: linuxassemblysegmentation-faultheap-memoryelf

解决方案


推荐阅读