1织堂、將下述代碼存儲為sh.s,其功能為執(zhí)行/bin/sh
section .text
? global _start
??? _start:
????? push rax
????? xor rdx, rdx
????? xor rsi, rsi
????? mov rbx,'/bin//sh'
????? push rbx
????? push rsp
????? pop rdi
????? mov al, 59
????? syscall
2、用nasm編譯執(zhí)行
nasm -f elf64 -F stabs sh.s -o sh.o
ld sh.o -o sh
備注:-F stabs讓assembler給輸出文件包含調(diào)試信息笆呆。因此衷戈,gdb之后就能調(diào)試了
3、gdb調(diào)試sh稠通,下面的演示假設(shè)安裝了pwndbg衬衬。
設(shè)置斷點(diǎn)
然后,按n執(zhí)行下一步改橘,i r rdx等來查看寄存器
不斷按n滋尉,時(shí)刻查看寄存器、堆棧和內(nèi)存飞主,一直執(zhí)行到程序結(jié)束狮惜。