很简单的题目
![](https://img2018.cnblogs.com/blog/802362/201911/802362-20191107194329982-1118204497.png)
![](https://img2018.cnblogs.com/blog/802362/201911/802362-20191107194330238-1138920734.png)
![](https://img2018.cnblogs.com/blog/802362/201911/802362-20191107194330593-139795235.png)
先file,然后checksec
64位,NX
然后查看源代码
![](https://img2018.cnblogs.com/blog/802362/201911/802362-20191107194329982-1118204497.png)
查看函数列表发现有一些没有调用的函数
其中有一个goodgame的函数
打开看看
![](https://img2018.cnblogs.com/blog/802362/201911/802362-20191107194330238-1138920734.png)
涉及到文件打开,读取
刚好是flag.txt,而且程序中刚好是将flag的内容一个个的读取出来,所以想到栈溢出来使得执行goodgame游戏
![](https://img2018.cnblogs.com/blog/802362/201911/802362-20191107194330593-139795235.png)
自己在本机上随便写了一个flag.txt测试成功
破解程序:
![](https://img2018.cnblogs.com/blog/802362/201911/802362-20191107194331019-92156108.png)
注意:64位文件破解一定是p64和u64
还有一个函数readmessage()好像没什么具体作用,因为读取的是buf开始的数据