admin管理员组文章数量:1566224
(BUU_[BJDCTF2020]BJD hamburger competition
开始
分析
是个用Unity3D制作的恶趣味游戏hhh(奥里给干了兄弟们)
看看我的汉堡包做的咋样?
正式分析:
以前没见过Unity3D的逆向。。先康康别人的blog。
unity是用C#开发的,所以用dnSpy来进行分析。
注:dnSpy是分析net程序的反编译工具。
根据其它师傅的建议,把BJD hamburger competition_Data
\Managed文件夹中的Assembly-CSharp.dll拖到dnSpy进行分析。
拖进去后:
根据其它师傅的建议,找到ButtonSpawnFruit类:
反编译完后得到的文件里面,有重要线索:
核心代码:
if (component)
{
if (this.audioSources.Length != 0)
{
this.audioSources[Random.Range(0, this.audioSources.Length)].Play();
}
component.Spawn(this.toSpawn);
string name = this.toSpawn.name;
if (name == "汉堡底" && Init.spawnCount == 0)
{
Init.secret += 997;
}
else if (name == "鸭屁股")
{
Init.secret -= 127;
}
else if (name == "胡罗贝")
{
Init.secret *= 3;
}
else if (name == "臭豆腐")
{
Init.secret ^= 18;
}
else if (name == "俘虏")
{
Init.secret += 29;
}
else if (name == "白拆")
{
Init.secret -= 47;
}
else if (name == "美汁汁")
{
Init.secret *= 5;
}
else if (name == "柠檬")
{
Init.secret ^= 87;
}
else if (name == "汉堡顶" && Init.spawnCount == 5)
{
Init.secret ^= 127;
string str = Init.secret.ToString(); //转化成字符串类型
if (ButtonSpawnFruit.Sha1(str) == "DD01903921EA24941C26A48F2CEC24E0BB0E8CC7") //Sha1加密
{
this.result = "BJDCTF{" + ButtonSpawnFruit.Md5(str) + "}"; //最后在flag里面的却是字符串的md5加密
Debug.Log(this.result);
}
}
解密
先从sha1开始反推。
sha1在线解密加密
所以紧接着就直接把1001进行md5加密:
md5加密
加密出了4种不同类型的。。
继续看一下源码,点进Md5函数看函数定义:
public static string Md5(string str)
{
byte[] bytes = Encoding.UTF8.GetBytes(str);//转化成UTF-8编码
byte[] array = MD5.Create().ComputeHash(bytes);//计算MD5值
StringBuilder stringBuilder = new StringBuilder();//
foreach (byte b in array)
{
stringBuilder.Append(b.ToString("X2"));//转化成16进制,大写的数字
}
return stringBuilder.ToString().Substring(0, 20);//只返回前20位
}
所以最后应该是:
B8C37E33DEFDE51CF91E
BJDCTF{B8C37E33DEFDE51CF91E}
注:buuoj平台上应该是flag{B8C37E33DEFDE51CF91E}
总结
- C#入门
- Unity3D逆向
- dnSpy
- 从多个文件中抽取重要文件,文件中抽取重要代码段的方法
至于怎么在那么多文件中找到需要的关键文件,我以后再思考。
引用/参考
https://blog.csdn/yeyang911/article/details/12882029
https://wwwblogs/DorinXL/p/12905651.html
https://blog.csdn/huutu/article/details/50829828
本文标签: BJDcompetitionhamburger
版权声明:本文标题:(BUU_[BJDCTF2020]BJD hamburger competition 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://www.elefans.com/dianzi/1726693534a1080935.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论