伴随着科技快速展今天,智能手机给人们带来方便快捷。但是山寨app严重混乱,Android app的安全越来越受人重视,大部分市场上存放的apk已经经过各种加密来防止反编译。现在我们就来浅谈一下市面上已经过加密防止反编译的apk和它是如何防止反编译的方法和这些方法的可靠性吧。
捕鱼达人2
各大市场游戏下载排行都名列前茅、下载实数不下百万的捕鱼达人2是怎么做的安全保护来防止二次打包呢?
在手机内部获取data/app下的apk 文件对象通过java的方式来获取签名MD5值。然后再本地对这个签名MD5值进行验证。因为此验证是在so库里面来进行并且在非主线程里面进行验证,没有卡主线程很难让破解的人发现它加密的主要方法具体在哪,但对下的验证的方法带有apk的路径的参数让它也有一定的漏洞。只需要伪造一个路径(正版apk路径)传递给so库就可以让其保护无效。
总结:运行在so库里面、用java获取签名信息的方法、非主线程进行验证大大增加此方法的安全作用,但是在java层提供的native方法依旧有一个String类型的参数让其很容易伪造参数来破坏保护。
神庙逃亡2
依据是各大市场炙手可热、下载量都极高的游戏神庙逃亡2,因为用户量极高所有它的安全要求会更高。那神庙逃亡2是如何做安全保护来防止二次打包的呢?
如上图可以看到,此游戏在验证签名信息非官方的情况下会弹出模式窗体提示给用户此APK是盗版软件。一切验证都是在java层通过android提供的方法来获取签名信息上传服务器再服务器来进行验证,通过服务器的返回值来让客户端软件知道自身是否是正版软件。此方法可以说作用不大,首先是无网络的情况下是完全无法进行验证;其次是所有验证方法都在java层让它的可靠性大大降低,很容易就反编译到源码修改代码让其保护作用基本无效。
总结:本地java层使用android方法来获取签名信息,上传服务器进行验证,通过服务器反馈来告知软件是否官方版;可利用漏洞太多,保护作用意义基本为零。
目前安卓市场中的山寨app由于含有大量植入病毒与恶意代码已经成为了用户信息泄漏,利益受损的始作俑者,引起了更多的开发者与用户的思考与重视。爱加密app加密保护服务是目前全球最权威的app加固防破解服务提供商,通过加密apk源码能有效杜绝破解及山寨应用的出现,共同维护开发者、应用市场和用户的合法权益,打造一个健康和谐的纯净app应用生态链。