行业新闻

unity发布出来的安卓apk怎么加密

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整个目录进行加壳。

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

加密工具

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

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

加密过程

  1. 将angrybots5.5.3.apk导入VirboxProtector

1594259417.png

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

1594259379.png

  1. 开始保护

1594259404.png

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

加密效果

代码加密效果

加密前代码反编译效果

1594259361.png

加密后代码反编译效果

1594259349.png

资源加密效果对比

1594259333.jpg

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

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

方案简介

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

解决问题

  • 防止随意拷贝软件

  • 限制软件使用时间

  • 限制软件使用次数

如何使用

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

 

解决方案2:Smart License

方案简介

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

 功能特点

  • 绑定硬件,防止拷贝

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

  • 授权智能化

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

  • 授权自动化

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

  • 可视化数据展板

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

  • 支持广泛,应用灵活

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

如何使用

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

关闭