gcc 当不使用任何选项时,gcc将会生成一个名为a.out的可执行文件
objdump -d a.out 则会查看主要的反汇编代码,反汇编a.out中的需要执行指令的那些section,我先定位到main(由于是64位ubuntu,所以默认程序是64位,下图可以看到canary,具体的传参机制可以参考汇编语言段寄存器传给rax)
call Func实际上是将在main指令中位于call的下一条指令送进栈作为return address,目光移至Fun函数
gcc 当不使用任何选项时,gcc将会生成一个名为a.out的可执行文件
objdump -d a.out 则会查看主要的反汇编代码,反汇编a.out中的需要执行指令的那些section,我先定位到main(由于是64位ubuntu,所以默认程序是64位,下图可以看到canary,具体的传参机制可以参考汇编语言段寄存器传给rax)
call Func实际上是将在main指令中位于call的下一条指令送进栈作为return address,目光移至Fun函数