此篇文章更像是个备忘录,收集网上公开的 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 栈指针(指向栈底)