unity代码加密for Android,mono编译
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
《一》加密原理
《二》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编译的更多相关文章
- 一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp)
一键自动发布ipa(更新svn,拷贝资源,压缩资源,加密图片资源,加密数据文件,加密lua脚本,编译代码,ipa签名,上传ftp) 程序员的生活要一切自动化,更要幸福^_^. 转载请注明出处http: ...
- Unity 代码编译成dll 更新dll实现热更代码
Unity 代码编译成dll 更新dll实现热更代码 实现流程 代码编译成DLL DLL打包成AssetBundle 加载AssetBundle 加载代码程序集 获取指定类 使用反射赋值 C#代码编译 ...
- Android 开发怎样做代码加密或混淆?
欢迎访问网易云社区,了解更多网易技术产品运营经验. 在大公司怎么做android代码混淆的?发现他们的软件用apktool反编译居然没看到classes.dex文件和当前安卓APP加固到底该如何做到防 ...
- Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密
Java代码加密与反编译(二):用加密算法DES修改classLoader实现对.class文件加密 二.利用加密算法DES实现java代码加密 传统的C/C++自动带有保护机制,但java不同,只要 ...
- Java代码加密与反编译(一):利用混淆器工具proGuard对jar包加密
Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.通 ...
- 转 谈谈android反编译和防止反编译的方法
谈谈android反编译和防止反编译的方法 android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的项 ...
- 谈谈android反编译和防止反编译的方法(转)
谈谈android反编译和防止反编译的方法(转) android基于java的,而java反编译工具很强悍,所以对正常apk应用程序基本上可以做到100%反编译还原. 因此开发人员如果不准备开源自己的 ...
- 面向Unity程序员的Android快速上手教程
作者:Poan,腾讯移动客户端开发 工程师 商业转载请联系腾讯WeTest获得授权,非商业转载请注明出处. WeTest 导读 随着Unity.cocos2dx等优秀跨平台游戏引擎的出现,开发者可以把 ...
- Unity3D 代码加密保护工具
加密方式 对于Unity3D的保护方式,主要是通过Virbox Protector Standalone对Unity3D程序的整个生成目录进行加密,可以保护Unity的主要代码逻辑不被反编译,最大 ...
随机推荐
- slideDoor(学习某编程网站的,仅作记录和学习)
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- YYCache设计思路及源码学习
设计思路 利用YYCache来进行操作,实质操作分为了内存缓存操作(YYMemoryCache)和硬盘缓存操作(YYDiskCache).内存缓存设计一般是在内存中开辟一个空间用以保存请求的数据(一般 ...
- Predicate接口和Consumer接口
Predicate和Consumer接口是集合操作中常用到的俩个接口: 1.Predicate public interface Predicate<T>{ boolean test(T ...
- 《爵迹》侵权链接多为个人用户分享到个人网盘 总结说明:推广途径为 网盘>微博>博客>贴吧>知道
网络侵权链接3318条.该片的侵权范围分布相对较均匀,其中微博/博客侵权链接630条.占比19%:贴吧778条.占比23.4%:知道513条.占比15.4%:网盘828条.占比25%:小网站410条. ...
- Javascript实现二级select联动
1.js cities = new Object(); cities['河北省']=new Array('石家庄', '张家口市', '承德市', '秦皇岛市', '唐山市', '廊坊市', '保定市 ...
- class命名
常见class关键词: 布局类:header, footer, container, main, content, aside, page, section 包裹类:wrap, inner 区块类:r ...
- Socket通讯
复习贴,资料大多来自百科.看了一遍理解了一遍,把绕口的话按语义给改了`_>` 对于一个网络连接来说,套接字是平等的,并没有差别,不因为在服务器端或在客户端而产生不同级别.不管是Socket还是S ...
- Java—数据库技术
JDBC(Java Database Connection,Java数据库连接)是一种用于执行SQL语句的JavaAPI(应用程序设计接口),它由一些Java语言写的类和界面组成.JDBC提供了一种标 ...
- spring与mybatis三种整合方法
spring与mybatis三种整合方法 本文主要介绍Spring与Mybatis三种常用整合方法,需要的整合架包是mybatis-spring.jar,可通过链接 http://code.googl ...
- 恢复 root 本地无权限 Access denied for user 'root'@'localhost' (using password: NO)
调试远程的时候,覆盖了本地的权限.导致 本地无法登陆系统表. 远程连接上mysql 执行以下命令恢复. 恢复root 本地管理权限 使用空密码 grant all on *.* to roo ...