unity发布出来的安卓apk怎么加密-冯金伟博客园

  Unity3D 现在很火。应用得场景很多。那么针对 unity 发布的程序如何加密呢?

  Unity3D 程序的安全问题

  代码安全问题

  Unity3D 程序的核心程序集文件 Assembly-CSharp.dll 是标准的 .NET 文件格式,附带了方法名、类名、类型定义等丰富的元数据信息,使用 DnSpy 等工具可以轻易地将其反编译和篡改,代码逻辑、类名和方法名等一览无余。代码逻辑一但被反编译,很容易滋生各种类型的外挂,破坏游戏平衡,如果代码逻辑中存在漏洞,也容易被挖掘和利用,可能对开发商造成无法预料的损失。

  资源安全问题

  Unity3D 程序在编译打包阶段会通过 Unity 编辑器将资源打包成 Asset Bundle 文件,Asset Bundle 是一种公开的压缩类文件格式,使用 Asset Studio 等工具可以对其解析、展示和提取。如果不保护,很容易被窃取进行二次开发。对于网络游戏,还可以将一些场景资源的材质属性改为透明,实现透视效果。

  需求一:安卓 U3D-APK 的加密保护

  两种编译方式:ill2cpp 和 mono。不同的编译方式,加密方式也不同。将 Android Unity3D apk 解压,查看 lib 库目录,若是 lib 目录下含有 libmono.so 库,那么说明 Unity3D 编译选项时选择的是 mono,此时需要对 apk 整个目录进行加壳。

unity发布出来的安卓apk怎么加密-冯金伟博客园

  若是 lib 目录下含有 libil2cpp.so 库,那么说明 Unity3D 编译选项时选择的是 IL2CPP,此时需要对 lib 目录下的 so 库进行保护。

unity发布出来的安卓apk怎么加密-冯金伟博客园

  加密工具

  Virbox Protector 1.6 版本。试用下载:https://shell.virbox.com/apply.html

  加密例子:angrybots5.5.3.apk(编译选项:mono)

  加密过程

  1.   将 angrybots5.5.3.apk 导入 VirboxProtector

unity发布出来的安卓apk怎么加密-冯金伟博客园

  1.   设置加密选项和资源加密

unity发布出来的安卓apk怎么加密-冯金伟博客园

  1.   开始保护

unity发布出来的安卓apk怎么加密-冯金伟博客园

  加壳成功后会生成 ssp.apk,然后重新对加壳后的 ssp.apk 进行签名打包,才能正常安装。

  加密效果

  代码加密效果

  加密前代码反编译效果

unity发布出来的安卓apk怎么加密-冯金伟博客园

  加密后代码反编译效果

unity发布出来的安卓apk怎么加密-冯金伟博客园

  资源加密效果对比

unity发布出来的安卓apk怎么加密-冯金伟博客园

  需求二:控制设备程序的授权使用

  解决方案1:精锐 5 加密锁

  方案简介

  精锐 5 加密锁是一款 USB 加密锁,安卓设备上必须能支持插 USB 设备,精锐 5 可以控制软件的使用时间、次数、功能模块等。拔掉加密锁,设备则无法运行 U3D 的程序。

unity发布出来的安卓apk怎么加密-冯金伟博客园

  解决问题

  •   防止随意拷贝软件

  •   限制软件使用时间

  •   限制软件使用次数

  如何使用

  精锐 5 加密锁可配合 Virbox Protector 一起使用,一方面做代码及资源加密,同时做软件的授权管控。同时精锐 5 加密锁也提供了 SDK,可快速实现写锁的授权,不需要做代码开发。全程使用工具操作加密及写锁。只需要到深思数盾商城购买一套开发套件即可开始测试。

  解决方案2:Smart License

  方案简介

  Smart License 支持安卓及 ARM 平台下的程序授权控制,使用形式为授权码(16 位字母和数字),可快速实现一码一机和一码多机方案。同时可快速实现软件的限时及功能模块的限制使用。

unity发布出来的安卓apk怎么加密-冯金伟博客园

  功能特点

  • 绑定硬件,防止拷贝

  经过授权的设备会生成本地缓存文件,和设备硬件绑定,有效防止通过拷贝文件的方式盗用授权

  • 授权智能化

  联通授权激活、使用情况、设备信息的壁垒,综合汇总为开发者提供详实的经营数据,辅助开发者执行营销策略,改善产品

  • 授权自动化

  授权的自动激活及自动恢复减少开发者的管理工作,降低产品推广过程中的支持工作量,提升产品的体验。

  • 可视化数据展板

  可视化数据展现让开发者掌控授权使用情况

  • 支持广泛,应用灵活

  支持硬件产品包括(不限于)华为海思、大华、海康萤石等智能摄像头;支持联网或不联网的设备上使用

  如何使用

  Smart License 提供免费试用,首先需要注册一个 Virbox LM 开发者账号(https://developer.lm.virbox.com/),注册后登录 VirboxLM 即可进行授权码的生成和管理。可联系深思数盾定制 SDK,做加密及授权的开发。