Android app的安全愈来愈受人重视,大部分市场上存放的apk已经通过各类加密来防止反编译。如今咱们就来浅谈一下市面上已通过加密防止反编译的apk和它是如何防止反编译的方法和这些方法的可靠性吧。
捕鱼达人2java
各大市场游戏下载排行都名列前茅、下载实数不下百万的捕鱼达人2是怎么作的安全保护来防止二次打包呢? 在手机内部获取data/app下的apk 文件对象经过java的方式来获取签名MD5值。而后再本地对这个签名MD5值进行验证。由于此验证是在so库里面来进行而且在非主线程里面进行验证,没有卡主线程很难让破解的人发现它加密的主要方法具体在哪,但对下的验证的方法带有apk的路径的参数让它也有必定的漏洞。只须要伪造一个路径(正版apk路径)传递给so库就可让其保护无效。 总结:运行在so库里面、用java获取签名信息的方法、非主线程进行验证大大增长此方法的安全做用,可是在java层提供的native方法依旧有一个String类型的参数让其很容易伪造参数来破坏保护。
神庙逃亡2android
依据是各大市场煊赫一时、下载量都极高的游戏神庙逃亡2,由于用户量极高全部它的安全要求会更高。那神庙逃亡2是如何作安全保护来防止二次打包的呢?
如上图能够看到,此游戏在验证签名信息非官方的状况下会弹出模式窗体提示给用户此APK是盗版软件。一切验证都是在java层经过android提供的方法来获取签名信息上传服务器再服务器来进行验证,经过服务器的返回值来让客户端软件知道自身是不是正版软件。此方法能够说做用不大,首先是无网络的状况下是彻底没法进行验证;其次是全部验证方法都在java层让它的可靠性大大下降,很容易就反编译到源码修改代码让其保护做用基本无效。segmentfault
总结:本地java层使用android方法来获取签名信息,上传服务器进行验证,经过服务器反馈来告知软件是否官方版;可利用漏洞太多,保护做用意义基本为零。
更多内容,期待您的探索,请关注爱加密,让您精彩不断!安全
爱加密官方地址:http://www.ijiami.cn/服务器