一題ROP - 資安

Table of Contents

最近再看inndy的rop2可是看了writeup還是不懂為何這樣寫

題目是rop2

http://www.carlstar.club/2018/10/24/hackme.inndy.tw-pwn/

關鍵payload是這樣

payload = fit({0xc +
0x4:[p32(addr_sys),p32(addr_gadget),p32(3),p32(0),p32(addr_bss),p32(30)]})

想請問為何syscall後面可以擺一個rop gadget??

我看syscall不都是用register來當參數,為何stack這樣擺可以work??

感謝各位!


--

All Comments

Heather avatarHeather2018-12-14
我沒做過瞎猜一下,syscall這個function雖然是用來call
syscall,但他是libc function,那參數傳遞跟一般func
tion一樣靠stack在底層才把參數放到register,所以可以
這樣寫吧
Jacob avatarJacob2018-12-18
這裡的syscall是wrapper,glibc會放好register再syscall