0

64 ビット Asm でSecurity Tubes execve チュートリアル ( http://hackoftheday.securitytube.net/2013/04/demystifying-execve-shellcode-stack.html ) を模倣しようとしています。バスエラーの原因がわかりません。GDB でアプリをステップ実行しましたが、フレームから外れるまでエラーは発生しませんでした。何が起こっているのか知っている人がいたら、ぜひ聞いてみたいです。

.section __DATA,__data
.section __TEXT,__text
.globl _start
_start:
    xor %rax, %rax
    push %rax
    movabsq $0x68732f6e69622f2f, %rdi
    push %rax
    mov %rsp, %rsi
    push %rdi
    mov %rsp, %rdx
    mov $0x2000059, %rax
    syscall
4

1 に答える 1

2

以下はうまくいくはずですが、テストするosxがありません:

.globl _start
_start:
    xor %edx, %edx                    ; NULL for env
    movabsq $0x0068732f6e69622f, %rax ; /bin/sh<0>
    push %rax
    mov %rsp, %rdi                    ; filename
    push %rdx                         ; NULL for argv terminator
    push %rdi                         ; argv[0] = filename
    mov %rsp, %rsi                    ; argv
    mov $0x200003b, %eax              ; I think 59 is decimal
    syscall
于 2016-05-07T00:34:07.517 に答える