-
-
[原创]BUUCTF-reverse-[BJDCTF2020]BJD hamburger competition
-
发表于: 2022-4-12 09:09 5967
-
[BJDCTF2020]BJD hamburger competition
今天分享一个不是很难,但是挺有趣的一道游戏题题目链接:841K9s2c8@1M7s2y4Q4x3@1q4Q4x3V1k6Q4x3V1k6T1N6i4g2G2K9W2)9J5k6h3y4F1i4K6u0r3j5$3S2S2L8r3I4W2L8X3N6W2M7#2)9J5x3#2)9#2b7V1u0v1c8p5y4f1c8U0t1H3x3U0m8Q4y4f1c8n7d9V1c8Q4x3U0f1J5x3r3S2S2L8h3u0#2M7X3N6W2M7W2)9J5y4e0t1H3j5$3!0E0M7r3g2@1K9i4c8A6L8$3^5`.
前置知识
对于简单的unity游戏,就像今天这道拿来做ctf逆向题的unity游戏,它的主要逻辑都在Assembly-CSharp.dll中,一般情况下就是直接去找这个文件去分析里面的函数,找到关键逻辑,就可以解出flag,对于一些非常规的unity游戏,我做的也比较少,只能随机应变了。
这个题的附件较大,超过了上传附件的上限,我上传的就是那个关键的文件,如果要看原件,可以去上面的那个链接里去下载
题目分析
下载好文件,发现是个unity游戏,通过上面的知识,直接用dnspy打开Managed下的Assembly-Csharp.dll文件,因为游戏的过程是通过叠加材料,猜测关键函数应该是在这个部分。



题解
找到关键的ButtonSpawnFruit函数,看到关键函数

这边可以直接找个在线破解hash的网站去破解一下,破出来结果是1001

然后接着看函数,后面需要MD5加密这个数,但MD5有大小写之分,还得确认是大写还是小写,点开MD5函数

"x2"指的是大写的意思,(0,20)指的则是取0到19,也就是前20位,到现在整个的逻辑就很清晰了,直接在刚才那个网站将1001加密,然后取大写的前20位就是我们需要的flag了

可以得出flag{B8C37E33DEFDE51CF91E}