uinty3d加密推荐几篇比较好的博客链接:

http://www.cppcourse.com/u3d-encryption.html

http://www.xuanyusong.com/archives/3553

http://m.blog.csdn.net/blog/yy405145590/41205283

http://blog.sina.com.cn/s/blog_799860f90102vp0l.html

《一》加密原理
1、unity3d是基于mono的,而mono是开源的,我们重编mono,并加入加密和解密的算法,生成so文件,替换unity工程中的so。
《二》NDK安装

1.下载unity对应版本的mono源代码,官方地址:https://github.com/Unity-Technologies/mono/

2.重编mono,因为作者用的win7系统,开始是用cygwin,结果各种失败,所以就装了虚拟机VMware Workstation,然后你需要下载一个Linux的系统ISO镜像文件,笔者当时下载的是ubuntu-14,大小大概在1G左右,然后就是把镜像文件安装到虚拟机上咯~~安装后大概的样子是这样的

3.进入Ubuntu系统,我在Home目录里面新建了一个目录monobuild,打开Terminal命令行模式,

$ mkdir monobuild

然后把下载的mono源代码zip文件放到这个目录里面(只能从windows上拖到这个目录就可以了),这个时候输入

$ ls

就能看到有monobuild这个目录了

4.解压mono,进入monobuild目录

$ cd monobuild

执行解压命令

$ unzip mono-unity-4.6.zip

5.下载NDK安装包,这个时候你要看看/mono-unity-4.6/external/buildscripts/build_runtime_android.sh文件第13行左右看看unity用的NDK版本

然后到官网下载对应版本的NDK,安装

6.安装好后,ndk配置,输入

$ gedit ~/.bashrc

在打开的文件的末尾添加

export NDK_HOME=/home/anyq/monobuild/android-ndk-r9
export PATH=$PATH:$NDK_HOME

其中NDK_HOME等号后面是的是ndk的路径,可以用pwd命令输出当前的路径查看

输入

$ source ~/.bashrc

使其立即生效.

7.ndk验证,输入

$ nkd-build

如果没有提示 commond not found就是成功了。

《三》SDK安装(可以不安装)

1.官网下载AndroidSDK,需要翻墙,呵呵。。也放到monobuild目录。

2.这个时候需要解压,比我笔者下载的是 android-sdk_r24.3.3-linux.tgz ,输入

tar -zxvf android-sdk_r23.0.2-linux.tgz

3.和ndk一样在bashrc末尾加入

export ANDROID_HOME="/home/anyq/android-sdk-linux"

export PATH="$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools"
 《四》编译

1.拷贝 mono-unity-4.6/external/buildscript/build_runtime_android.sh 到   mono-unity-4.6/   根目录中。

2.切换到mono-unity-4.6/ 目录中,使用 root 运行 build_runtime_android.sh

./build_runtime_android.sh

3.会提示没有安装Git

sudo apt-get install git

4.修改 build_runtime_android.sh Line 113 ,改为:

(cd "$KRAIT_PATCH_PATH" && perl ./build.pl)

5.然后修改 mono-unity-4.6/external/android_krait_signal_handler/build.pl

(这是脚本调用git clone过来的 https://github.com/Unity-Technologies/krait-signal-handler/)

删掉第一行

#!/usr/bin/env perl -w

6.继续运行出错,提示 ANDROID_NDK 版本不对,又要下载,下载又失败,修改成我们自己的版本。

找到build.pl ,修改BuildAndroid 函数里面的 r9 为 自己下载的版本  r10e  

7.修改android-ndk-r10e目录下的RELEASE.TXT

改为 :r10e

8.external/android_krait_signal_handler/jni/Application.mk   文件

TOOLCHAIN_VERSION := clang3.3  改成 TOOLCHAIN_VERSION :=4.8

9.

然后继续编译

提示没有 autoreconf

使用下面命令安装autoreconf:

sudo apt-get update
sudo apt-get install autoconf

同样的方法,顺便把下面的包都安装一下

* autoconf
* automake
* bison
* gcc
* gettext
* glib >= 2.0
* libtool
* make
* perl

10.如果运气好就能编译成功了

  

可以看到 打包成功,lib在builds/embedruntions/android.

  

 

unity代码加密for Android,mono编译的更多相关文章

  1. 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)

    一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...

  2. Unity 代码编译成dll 更新dll实现热更代码

    Unity 代码编译成dll 更新dll实现热更代码 实现流程 代码编译成DLL DLL打包成AssetBundle 加载AssetBundle 加载代码程序集 获取指定类 使用反射赋值 C#代码编译 ...

  3. Android 开发怎样做代码加密或混淆?

    欢迎访问网易云社区,了解更多网易技术产品运营经验. 在大公司怎么做android代码混淆的?发现他们的软件用apktool反编译居然没看到classes.dex文件和当前安卓APP加固到底该如何做到防 ...

  4. Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密

    Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密 二.利用加密算法DES实现java代码加密 传统的C/C++自动带有保护机制,但java不同,只要 ...

  5. Java代码加密与反编译(一):利用混淆器工具proGuard对jar包加密

    Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.通 ...

  6. 转 谈谈android反编译和防止反编译的方法

    谈谈android反编译和防止反编译的方法   android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...

  7. 谈谈android反编译和防止反编译的方法(转)

    谈谈android反编译和防止反编译的方法(转) android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的 ...

  8. 面向Unity程序员的Android快速上手教程

    作者:Poan,腾讯移动客户端开发 工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest 导读 随着Unity.cocos2dx等优秀跨平台游戏引擎的出现,开发者可以把 ...

  9. Unity3D 代码加密保护工具

    加密方式   对于Unity3D的保护方式,主要是通过Virbox Protector Standalone对Unity3D程序的整个生成目录进行加密,可以保护Unity的主要代码逻辑不被反编译,最大 ...

随机推荐

  1. CentOs6.5下安装svn

    1.检查是否已安装 rpm -qa subversion 1.1如果需要卸载旧版本(如果想在一台机器安装不同svn,切记不要执行此步骤!!!) yum remove subversion 2.安装 y ...

  2. bootstrap 实战入门教程(一)

    说起响应式前端框架,比较而言,bootstrap还是不错的,虽然可能很多文档都是英文的.今天就整理下自己在学习及使用bootstrap3时的重要知识点和使用案例 参考资料: runoob的bootst ...

  3. Eenterprise linux服务器分区

    分区说明: (在MBR格式的硬盘下我会分/ /boot swap /data 四个分区,不建议在服务器上面使用LVM,中大型企业的IDC都是有存储区域的,专门管理硬盘容量的.)(分区的时候,请注意顺序 ...

  4. <mvc:annotation-driven/>与<context:annotation-config/>的区别

    在使用注解的方式配置SSM的时候一般会配置<mvc:annotation-driven/>与<context:annotation-config/>,有时候会对两者的概念有些区 ...

  5. 关于C语言结构体,指针,声明的详细讲解。——Arvin

    关于结构体的详细分析 只定义结构体 struct Student { int age; char* name; char sex;//结构体成员 };//(不要忘记分号) Student是结构体的名字 ...

  6. js实现div层缓慢收缩与展开的方法

    引脚本之家 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN""http://www.w3.org/T ...

  7. zabbix3.0.4 部署之七 (zabbix3.0.4 邮件报警) & 微信报警

    1 [root@sv-zabbix ~]# cat /usr/local/zabbix/share/zabbix/alertscripts/sendEmail.sh #!/bin/bash#SMTP_ ...

  8. 哈希表(Hash Table)

    参考: Hash table - Wiki Hash table_百度百科 从头到尾彻底解析Hash表算法 谈谈 Hash Table 我们身边的哈希,最常见的就是perl和python里面的字典了, ...

  9. VB发送后台按键和组合键

    http://files.cnblogs.com/files/liuzhaoyzz/VB%E5%8F%91%E9%80%81%E5%90%8E%E5%8F%B0%E7%BB%84%E5%90%88%E ...

  10. OPENGL半透明图像产生黑色光环

    OPENGL提供了多种多样的混合方法,我们很容易就能实现诸如 叠加.变亮等图像混合. 我们知道一般带透明度的图像是RGBA四个通道来存储,最常的glBlendFunc是 glBlendFunc(GL_ ...