此篇文章更像是个备忘录,收集网上公开的 shellcode demo(on macOS) 跑起来有些问题,巴斯通过调试等扣细节修复了shellcode,后续还研究用C语言编写Shellcode等。
Apple clang version 13.1.6 (clang-1316.0.21.2.5)
objdump
如何在汇编中使用系统调用,必须在寄存器 rax
中传递系统调用的编号,使用如下寄存器传递参数:
rdi
第一个函数参数rsi
第二个函数参数rdx
第三个函数参数(也可以是该函数的第2个返回值)rcx
第四个函数参数r8
第五个函数参数r9
第六个函数参数rax
包含函数的返回值其他重要的寄存器如下:
rip
指令指针rsp
堆栈指针(指向栈顶)rbp
栈指针(指向栈底)