1。首先checksec
发现开启了 NX保护,栈不可修改
然后file这个文件,发现是32位文件。
放入iba中分析
按F5看伪代码
发现main函数的作用只是调用vuln函数,点击进入vuln函数
在vuln函数中能看到S中只能输入32个字符,双击s可以发现为s分配了3C的内存空间。
但我们分析vuln函数中的代码,可以发现,当我们输入“I”时,将会被替换为“you”
所以我们输入20个“I”就能达到栈溢出的目的,同时可以找到后门函数get_flag
在伪代码页面的左下角可以看到该函数的地址
所以paylaod = 'I' * 20 +'a' * 4 + p32(0x8040f0d),其中20个字符I填充缓冲区,4个a用来填充ebp,最后的地址用来覆盖call指令在栈中放入的地址,令其跳转到后门函数处。
此时,我们便可以写python脚本了。
运行
flag便出来了



