目录
什么是UnityDLL反编译
UnityDLL反编译是开发者在探索Unity引擎内部工作原理或者进行二次开发时常用的一种技术手段。Unity使用C#作为主要的编程语言,并将代码编译为DLL文件,这些DLL文件通常包含游戏逻辑、引擎功能等关键信息。由于DLL是编译后的二进制文件,直接查看其源代码并不直观,因此需要借助反编译工具来理解和学习。
如何进行反编译
使用工具:dnSpy(选择dnSpy-net-6.1.8win64.zip下载)
能进行源码编辑,然后重编译。简直就跟自己写得一样。
unity游戏,游戏逻辑都在Managed/Assembly-CSharp.dll内。
第一步
找到unity中的Assembly-CSharp.dll文件,将其拖进dnSpy
第二步
找到对应的代码(C Sharp Project是C#的工程文件,其中记录了与工程有关的相关信息) ButtonSpawnFruit.cs里面的字符串与游戏界面有关,很有可能藏有flag
例题
找到Assembly-CSharp.dll文件
用dnSpy打开,找到关键代码
一个是MD5加密,一个是SHA1加密,一个是游戏界面
分析代码可知密文进行Sha1逆向解密再Md5即可
ToString("X2") 是C#中的字符串格式控制符,大写X:即转化为大写的十六进制
Substring(0,20) 截取前二十个字符串即BJDCTF{B8C37E33DEFDE51CF91E}
恭喜你解出这道unity DLL逆向!!