在组织payload时候需要调换下顺序,没太理解
师傅想请教一下第6步中6.ROPgadget --binary ./ret2syscall --only "pop|ret" | grep "ebx" | grep "ecx" | grep "edx",这里您提到了一句这里我们需要的是pop ebx ; pop ecx ; pop edx ; ret ,但是得到的结果反了是pop edx ; pop ecx ; pop ebx; ret,您说只不过顺序和我们的不同,在组织payload时候需要调换下顺序,这里您指的调整payload就是调整后面分别对应ebx ecx edx的参数一一对应即可,意思就是这里对ebx、ecx、edx他们三个pop顺序是没有要求的是吗,我们只要保证这三项分别存入对应的参数/bin/sh、0、0,然后返回到int 0x80就可以了是吗,我可以理解为假如这里我们寻找到的是pop ebx ; pop ecx ; pop edx ; ret,那么exp中payload应该改成
1 | payload = 'a' * offset + pop_eax + p32( 0xb ) + pop_edx_ecx_ebx + bin_sh + p32( 0 ) + p32( 0 ) + int_0x80
|
就可以了呢?