题目是道很经典的rop链构造的题,攻防世界的pwn100,gadget怎么构造我都明白了,就是搞不懂为什么要这么构造例如最后调用system的payload如下payload = b'A' * 72 + p64(addr_pop_rdi) + p64(addr_sh) + p64(addr_sys) + p64(addr_main) + b'A' * 96
为啥不能直接payload = b'A' * 72 + p64(addr_sys) + p64(0) + p64(addr_sh) + b'A' * 104为啥一定要借助pop rdi呢
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)
git_91357jnabnsn Linux 64位系统,传参是先rdi rsi等几个寄存器,然后才到栈。多出来那个gadget,就是把栈里面那个赋值给rdi,也就是成为system的参数。