作者final01 (牛頓運動定律)
看板NetSecurity
標題[問題] 一題ROP
時間Sun Dec 9 18:04:20 2018
最近再看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??
感謝各位!
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.160.13.180
※ 文章網址: https://webptt.com/m.aspx?n=bbs/NetSecurity/M.1544349863.A.52F.html
1F:推 b0920075: 我沒做過瞎猜一下,syscall這個function雖然是用來call 12/10 07:36
2F:→ b0920075: syscall,但他是libc function,那參數傳遞跟一般func 12/10 07:36
3F:→ b0920075: tion一樣靠stack在底層才把參數放到register,所以可以 12/10 07:36
4F:→ b0920075: 這樣寫吧 12/10 07:36
5F:→ Inndy: 這裡的syscall是wrapper,glibc會放好register再syscall 05/09 12:19