Assembly 运行编译的asm文件后出现分段错误

Assembly 运行编译的asm文件后出现分段错误,assembly,x86,shellcode,Assembly,X86,Shellcode,我试图运行从这个asm文件编译的程序。我检查了每一步,认为没有什么问题,但我仍然得到分割错误。有人能帮我吗?谢谢!那么我应该在结尾加什么呢?是的。。我不熟悉asm和外壳代码。这段代码打算在shell路径指示shell目录的地方运行spawn shell。我删除了我的旧注释,因为我开始了解代码试图做什么。它似乎以一种巧妙的方式试图通过将外壳路径从堆栈中弹出(在调用的左侧)来获取它的地址。这是从哪里来的?这是我正在做的练习之一。您对修改此代码以使其正常工作有何建议?问题是代码试图向.text段写入一

我试图运行从这个asm文件编译的程序。我检查了每一步,认为没有什么问题,但我仍然得到分割错误。有人能帮我吗?

谢谢!那么我应该在结尾加什么呢?是的。。我不熟悉asm和外壳代码。这段代码打算在shell路径指示shell目录的地方运行spawn shell。我删除了我的旧注释,因为我开始了解代码试图做什么。它似乎以一种巧妙的方式试图通过将
外壳路径
从堆栈中弹出(在
调用
的左侧)来获取它的地址。这是从哪里来的?这是我正在做的练习之一。您对修改此代码以使其正常工作有何建议?问题是代码试图向
.text
段写入一个不允许的值。这是一个例子。
segment .text
    global _start

_start:
    jmp call_shellcode

shellcode:

    pop rbx
    xor rax, rax

    mov [rbx+7], al
    mov [rbx+8], rbx
    mov [rbx+16], rax

    mov al, 59
    lea rdi, [rbx+7]
    lea rsi, [rbx+8]
    lea rdx, [rbx+16]

    syscall
call_shellcode:
    call shellcode
    shellpath db "/bin/sh0aaaaaaaabbbbbbbb"