2018.10.10 pwn的学习0x1 参数传递

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/shakeyin1998/article/details/83015590

在32位程序当中,函数的传递是通过栈来进行传递。

构造shellcode 的方式是 padding+ fake_ebp+p32(system)+p32(返回地址)+p32(system 的参数)

在64位程序当中,函数的传递是通过寄存器进行传递。在64位程序当中,参数先是找rdi, rsi, rdx, rcx, r8, r9。

构造shellcode的方式是padding+fake_ebp+p64(pop_rdi_ret)+p64(system的参数)+p64(system)

函数的返回地址被pop_rdi_ret所覆盖,执行的时候 system的参数就进入rdi当中 并且ret执行后面的system

猜你喜欢

转载自blog.csdn.net/shakeyin1998/article/details/83015590