【问题标题】:mov byte [esi +9], bl causing segfault [duplicate]mov byte [esi +9], bl 导致段错误 [重复]
【发布时间】:2015-08-20 22:28:02
【问题描述】:

知道为什么这会导致段错误吗? mov byte [esi +9], bl

我使用调试器逐行查看,在执行该行后出现段错误。

我猜这意味着它试图访问内存中不应该访问的东西。

这是完整的代码:

global _start

section .text

_start:

    jmp short call_shellcode


shellcode:

    pop esi

    xor ebx, ebx
    mov byte [esi +9], bl
    mov dword [esi +10], esi
    mov dword [esi +14], ebx

    lea ebx, [esi]

    lea ecx, [esi +10]

    lea edx, [esi +14]

    xor eax, eax
    mov al, 0xb
    int 0x80



call_shellcode:

    call shellcode
    message db "/bin/bashABBBBCCCC"

【问题讨论】:

    标签: linux assembly x86 nasm shellcode


    【解决方案1】:

    默认情况下,文本部分不可写,数据部分不可执行。

    【讨论】:

    • 谢谢!!我需要更改什么来修复段错误?我没有数据部分,在文本部分,我实际上是在写 esi 而不一定是文本部分。
    猜你喜欢
    • 1970-01-01
    • 2021-04-18
    • 2016-01-21
    • 1970-01-01
    • 2015-07-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-14
    相关资源
    最近更新 更多