本文主要是介绍BUU[2019红帽杯]Snake,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
下载的时候看到是17.2MB
,头一回见到这么大的文件。
解压之后打开发现是一个游戏
文件目录下就这些东西,使用unity写的,搜索了一下,unity逆向的主要文件是**Assembly-CSharp.dll**
,然后直接在这个文件夹下搜索
**Assembly-CSharp.dll**
最后在Snake\Snake_Data\Managed这个目录下找到了
然后把它拖入ida
打开,找到GameObject
, 这个就是游戏的主体函数。
用dnspy
打开Assembly-CSharp.dll
, 然后找到Interface
下的GameObject
函数
下一步找到Interface.dll
文件,然后拖入ida
然后查看字符串, 找到关键字flag
跟进查看伪代码
整个函数一共四百多行,要搞懂他并且得到flag太难了,所以我查找wp
,找到了可以直接爆破的办法:
观察到整个函数只有a1
一个参数,而且整个函数是在a1
在 0~99
之间的情况下运行的,
直接上python脚本
import ctypes
for i in range(0,100):#从0~99开始爆破dll = ctypes.cdll.LoadLibrary("(Interface.dll目录)")#进入interface.dll这个文件print(i)dll.GameObject(i)#调用GameObject()这个函数
最后的结果是:
flag{Ch4rp_W1th_R$@}
这篇关于BUU[2019红帽杯]Snake的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!