多语言展示
当前在线:548今日阅读:103今日分享:49

一款安卓应用加密工具使用分享

以前发布的手游都没做过什么安全保护处理,随着用户数的积累,一些安全问题也逐渐显露出来。比如有用户投诉有外挂存在,投诉手游被杀毒软件暴病毒等等,遭遇这些问题,内心是崩溃的。为了避免类似的情况发生,选择了一款Unity3D手游加密工具,主要需求是:DLL文件保护、防内存挂、防系统加速挂、防二次打包和反调试。
工具/原料
1

安卓APK离线加密工具

方法/步骤
1

APK离线加密工具是付费的,先体验了几维安全提供的在线免费加密服务,之后决定购买的付费版本。付费版本相比免费版本:DLL加密是函数级方案而不是整体级加密,另外有内存保护、防系统加速和反调试功能。(免费版:注册&登录几维防御平台即可使用)

2

获取加密工具包后,解压&运行ApkEncryptTool.exe,启动界面下图。该加密工具支持批量加密apk文件,将需要加密的apk文件统一放到一个文件夹中,并选择该文件夹。

3

首先用正式签名文件对APK包签名,然后选择APK所在的文件夹,点击开始加固即可。(请不要重复加密apk,那样会造成加密失败或运行失败,同时确保未使用过其他加密工具)

4

耐心等待加密完成,加密完成后会在相应目录下生成一个以.kws.apk结尾的同名文件。接下来只需要用之前的签名文件签名即可。

5

将加密后的手游APK包安装到手机上测试,一切正常!并上传到几维防御平台对手游进行安全评估,其得分为94分,查看报告详情,之前考虑的几个安全点都已得到保护。

6

为了近一步检验加密效果,我用其他签名文件对加密后的手游APK进行签名,测试结果,手游启动时闪退,防二次打包测试通过。

7

检测DLL文件是否加密成功,使用.NET Reflector 工具对Assembly-CSharp.dll进行反编译,测试结果:反编译失败,DLL文件保护测试通过

8

官方说DLL加密主要是自定义Unity3d解析引擎,为此我在IDA中分析了libmono.so和libunity.so动态库,发现这两个动态库都有做加壳保护,在进一步分析过程中,发现加密代码自身又有安全防护。至此,我放弃了分析,SO加壳保护测试通过!

总结

此次Unity3D手游加密结果不错,如有类似需求的,希望对你们有用!

注意事项
1

待加密的apk未经过其他加密工具处理

2

apk加密后需要用之前的签名文件签名,否则被视为重打包,无法运行

推荐信息