我又回来了,前几天被timeout问题折磨,还是放弃了

拿到题目还是file一下

jarvisoj_fm_字符串

 

 看到时32位的程序,于是把程序放入ida*32中

 

jarvisoj_fm_字符串_02

 

 可以看到当x等于4的时候可以拿到shell,上面的printf(buf)存在明显的字符串漏洞,于是我们运行程序判断偏移位置

 

jarvisoj_fm_字符串_03

 

 61是a的ascii码,所以偏移位置是11

完整exp如下

 

jarvisoj_fm_ascii码_04

 

 offset的地址是x的地址

jarvisoj_fm_ascii码_05

 

 成功获得flag

结束