首页
社区
课程
招聘
[求助]对rop链的gadget有些问题
发表于: 2024-10-22 18:53 1619

[求助]对rop链的gadget有些问题

2024-10-22 18:53
1619

题目是道很经典的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期)

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 453
活跃值: (978)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
Linux 64位系统,传参是先rdi rsi等几个寄存器,然后才到栈。多出来那个gadget,就是把栈里面那个赋值给rdi,也就是成为system的参数。
2024-10-22 22:53
0
雪    币: 266
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
git_91357jnabnsn Linux 64位系统,传参是先rdi rsi等几个寄存器,然后才到栈。多出来那个gadget,就是把栈里面那个赋值给rdi,也就是成为system的参数。
懂了,原来是x64函数调用的区别,谢谢
2024-10-23 10:30
0
游客
登录 | 注册 方可回帖
返回
//