Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译。
来源:互联网 发布:阿里云cdn接口php 编辑:程序博客网 时间:2024/05/23 23:02
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 = true; /** * 打印日志 但是没有传递打印日志对应的组件 * **/ static public void Log(object message) { Log(message, null); } /** * 打印日志 并显示打印日志对应的组件 * **/ static public void Log(object message, Object context) { if (EnableLog) { //message为打印的信息,context为打印信息对应的组件 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
如下图所示:
备注:将项目属性 -> 应用程序 -> 目标框架:改为 .NET Framework 3.5或以下 。这一步很重要,因为Unity3D(当前的Unity3D版本是3.5版) 支持的 .Net 是3.5版。
如果选择的是4.0版会出现
Internal compiler error. See the console log for more information. output was:Unhandled Exception: System.TypeLoadException: Could not load type ‘System.Runtime.Versioning.
如下图所示:
Reflector下载链接:http://pan.baidu.com/s/1o6KH9xw。
- Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译。
- 使用vs生成dll文件并导入java工程
- 利用VS生成.lib及.dll文件
- 使用C#生成dll文件并调用
- Unity与dll不得不说(编译-使用-反编译-混淆)
- 利用map文件进行debug
- VS中调用DLL进行测试;vs进行远程调试;python中进行debug调试需要的文件
- 反编译C#的dll文件并修改,再重新生成dll
- 反编译C#的dll文件并修改,再重新生成dll
- 反编译C#的dll文件并修改,再重新生成dll
- 反编译C#的dll文件并修改,再重新生成dll
- 【原创】生成编写DLL并使用DLL文件
- 利用DLL生成lib文件
- 使用VS从DLL中生成LIB文件
- dll文件生成使用
- asp.net 利用VS将CS类文件生成DLL文件
- vs2010生成Dll文件并引用dll
- 利用VS生成DLL
- SAT写作用词写作关系-逻辑用词
- DDOS攻击是现在最常见的黑客攻击方式
- 比邻通讯协议逆向探究(版本3.7.5.0)
- Windows Azure 系列-- Azure Queue的操作
- GRE写作范文——研究历史的好处
- Unity自定义Debug日志文件,利用VS生成Dll文件并使用Dotfuscated进行混淆,避免被反编译。
- UVA - 10285 Longest Run on a Snowboard
- AndroidManifest.xml——activity(二)
- Leetcode[119]-Pascal's Triangle II
- confluent integrated
- 1033. To Fill or Not to Fill (25) -贪心算法
- Android之Activity的四种启动模式
- [033] 微信公众帐号开发教程第9篇-QQ表情的发送与接收
- 各种加解密算法比较