考点:Unity3D(是C#进行开发的)
使用工具:dnSpy
net的核心代码在\TPH\TPH_Data\Managed\Assembly-CSharp.dll出
将此文件拖入dnSpy
找到对应的代码( C Sharp Project 是C#的工程文件,其中记录了与工程有关的相关信息)
ButtonSpawnFruit.cs 里面的字符串与游戏界面有关,很有可能藏有flag
分析代码,发现主要包括三个模块
一个是MD5加密,一个是SHA1加密,一个是游戏界面。
分析最后一个函数,发现第83行的字符串是进行SHA1加密的结果,然后flag是MD5加密
所以解题思路为:现将字符串进行SHA1解密得到1001,然后对字符串进行MD5加密得到两个数据:
再查看MD5加密函数
ToString("X2") 是C#中的字符串格式控制符。大写X:即转化为大写的十六进制;小写x:即转化为小写的十六进制;2代表每次输出两位。
所以应该是大写。
第十九行:
Substring(0,20) 截取前二十个字符串。
所以应该是大写的前20个字符。
flag{B8C37E33DEFDE51CF91E}