我们有 32 位和 64 位二进制文件,在 ROP(面向返回编程)中,我们有时针对RSP
/ ESP
,有时RIP
/ EIP
,(也许)有时RBP
/ EBP
(我对此很陌生,还没有看到RBP
使用过)。在 ROP Emporium 的ret2win挑战中,我EIP
在 32 位二进制文件上命中(使用目标地址),但RSP
在 64 位上命中,因为我无法让我的有效载荷命中RIP
。
在制作 ROP 链/小工具时,我们如何选择 3 个寄存器中的哪一个作为目标?
我们有 32 位和 64 位二进制文件,在 ROP(面向返回编程)中,我们有时针对RSP
/ ESP
,有时RIP
/ EIP
,(也许)有时RBP
/ EBP
(我对此很陌生,还没有看到RBP
使用过)。在 ROP Emporium 的ret2win挑战中,我EIP
在 32 位二进制文件上命中(使用目标地址),但RSP
在 64 位上命中,因为我无法让我的有效载荷命中RIP
。
在制作 ROP 链/小工具时,我们如何选择 3 个寄存器中的哪一个作为目标?