码迷,mamicode.com
首页 > 编程语言 > 详细

(Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译。

时间:2015-06-09 13:49:51      阅读:288      评论:0      收藏:0      [点我收藏+]

标签:unity自定义日志   unity利用vs封   dll文件混淆   dll文件反编译   unity调用dll   

1、打开VS,博主所用版本是Visual Studio 2013。

2、新建一个VC项目,选择类库,取名为JefferyChan,具体步骤如下图:

技术分享

3、因为要调用Unity中的相关文件,所以这里要引入外部文件。首先在Unity的安装文件夹中找到UnityEngine.dll,我的路径是:D:\Program Files (x86)\Unity\Editor\Data\Managed
如下图所示:

技术分享

4、将UnityEngine.dll引入到项目中,如下图:
打开项目,然后打开VS的视图->解决方案管理器

技术分享

5、项目文件下的引用上面单击鼠标右键,引用->添加引用,引入外部文件,如下图所示:

技术分享

6,编辑需要编译的C#类文件,博主这里写的是个自定义日志输出文件,具体代码如下:

using System.Collections;
using UnityEngine;

/**
 * 
 * 新建一个命名空间 用于保存自己定义的一些公用方法
 * 
 * **/
namespace JefferyChan
{
    /**
     * 
     * 新建一个JefferyLog类用于输出调试日志
     * **/
    public class JefferyLog
    {
        //定义一个标志 用于控制是否输出日志
        static public bool EnableLog = false;

        /**
         * 打印日志 但是并不打印具体日志内容
         * **/
        static public void Log(object message)
        {
            Log(message, null);
        }

        /**
         * 打印日志 并打印出日志内容
         * **/
        static public void Log(object message, Object context)
        {
            if (EnableLog)
            {
                Debug.Log(message, context);
            }
        }

        /**
         * 打印出错日志  但是并不打印出具体的错误信息
         * **/
        static public void LogError(object message)
        {
            LogError(message, null);
        }

        /**
         * 打印出错日志 并且打印出具体的错误内容
         * **/
        static public void LogError(object message, Object context)
        {
            if (EnableLog)
            {
                Debug.LogError(message, context);
            }
        }

        /**
         * 打印警告日志 但是并不打印出具体的警告内容
         * **/
        static public void LogWarning(object message)
        {
            LogWarning(message, null);
        }

        /**
         * 打印警告日志 并且打印出警告内容
         * **/
        static public void LogWarning(object message, Object context)
        {
            if (EnableLog)
            {
                Debug.LogWarning(message, context);
            }
        }
    }
}

7、编译项目,生成dll文件,如下图所示:

技术分享

8、找到生成的dll文件,文件路径为:“项目路径”->bin->Debug->JefferyChan.dll,如下图所示:

技术分享

9、此时的dll文件用Reflector打开,发现反编译出来的代码和原始的代码几乎是一样的,如下图所示:

技术分享

10、使用Dotfuscated对生成的JefferyChan.dll文件进行混淆,如下图所示:

技术分享

点击生成按钮,进行混淆。

技术分享

11、再次反编译混淆后的代码,发现无法进行反编译,如下图所示:

技术分享

Dotfuscated是VS自带的,它存在于VS的安装目录下:D:\Program Files (x86)\Microsoft Visual Studio 12.0\PreEmptive Solutions\Dotfuscator and Analytics Community Edition

如下图所示:

技术分享

Reflector下载链接:http://pan.baidu.com/s/1o6KH9xw

(Unity)Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译。

标签:unity自定义日志   unity利用vs封   dll文件混淆   dll文件反编译   unity调用dll   

原文地址:http://blog.csdn.net/cjh19911112/article/details/46425421

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!