因为这几天碰到一个Unity的Bug,不得不去反编译DLL看看C#代码的生成中间件代码。这也用到了一些反编译以及重新编译DLL的一些知识,意味到Unity是如此的不安全。
首先我们新建一个工程,创建一个脚本,写一句很简单的代码:
using UnityEngine;using System.Collections;public class crack1 : MonoBehaviour { // Use this for initialization void Start () { Debug.Log("123"); } // Update is called once per frame void Update () { }}
代码逻辑就是输出一个字符串 "123" ,这次的目的就是修改掉 这个字符串,改成其它的。
好了。先运行一下,让Unity把代码编译成DLL。
很好,输出了代码中的字符串 123 。
然后停掉游戏。我们来修改Unity 生成的DLL。
Unity生成的DLL存储在
\Library\ScriptAssemblies\Assembly-CSharp.dll
打包之后存储在Data/Manager 文件夹。
下面开始反编译&&破解&&重新编译
反编译DLL
在开始菜单找到Visual Studio,然后在子目录找到 开发人员命令提示 ,如下图:
然后切换目录到 Unity 生成的 DLL 文件夹
输入命令: