热门文章

联系我们

热门文章位置:主页 > 热门文章 >

分享:APK高级保护方法解析(一),分享apk保护解析

编辑:AG集&# 时间:2019-01-31

分享:APK高级保护方法解析(一),分享apk保护解析

查天气、找美食、玩游戏、买电影票、网上购物……安装APP后,手机变成“百事通”。不过,智能手机越来越“聪明”,也越来越不安全,病毒感染、垃圾短信、隐私泄露等关乎手机用户切身利益的问题频发。保护手机安全,不仅需要用户到正规官网下载APP,更重要的是开发者要做好APK安全保护工作。                       http://write.blog.csdn.net/postedit

下面小编就分享一下APK高级保护的方法——运行时验证

运行时验证,主要是指在代码启动的时候本地获取签名信息,然后对签名信息进行检验来判断自己的应用是否是正版,如果签名信息不是正版则提示盗版或者直接崩溃。

它的原理:APK的唯一识别是根据包名+签名,包名信息是写死在Android Manifest.xml里面的,但是签名则是与APK绑定的,一旦APK被反编译后签名会自动消失。APK的签名需要签名文件,签名文件的md5值基本上是无法伪造成一样的。

签名验证的方法也可以细分为3种:

1) Java 层验证

获取签名信息和验证的方法都写在android 的java层。这种保护方法保护的意义并不大,因为反编译出源码后通过关键字搜索很快就能够找到验证的代码块,稍微一修改这验证保护就完全无效了。

2) 服务器验证

在android 的java层获取签名信息,上传服务器在服务端进行签名然后返回验证结果。这种保护还不如在纯java层验证有用,一旦没有网络验证保护就无效了。用android方法获取的签名信息用java方法也可以获取,验证存放在服务器上也是为了把保护正确的签名信息值,但是保护的意义其实没有任何作用,同样破解后全局搜索关键字然后伪造一个正确的签名信息就可完美破解了。

3) NDK技术底层获取签名和验证

通过把Context,Activity,PackageManager,PackageInfo四个对象中的一个作为参数参入底层,在底层获取签名信息并验证。因为获取和验证的方法都封闭在更安全的so库里面,能够起到一定意义上的保护作用。不过通过java层的hook技术一样可以把这种保护完美破解。但是相比于前两种,此保护的意义和价值就更大了。

再来看一下爱加密(www.ijiami.cn)的APK保护方法,它采用指纹校验保护APK中的文件。加密后,APK中所有的文件都对应一个唯一的指纹,每次运行时,APK内部会再次进行指纹生成,如果生成的指纹和原本指纹不相同,则判断为被二次打包过的APK,程序就会自动退出或直接崩溃。该方法可以防止资源文件、主配置文件被修改或删除等操作,完全保证APK的安全。

 

 

 


安卓手机游戏破解太猖狂了,怎加固apk来预防保护?

是呀,也一直再找apk加固的方法。
比较高级一点的就是代码高级混淆花指令方式对apk加固,花指令是程序中有一些指令,由设计者特别构思,希望使反汇编的时候出错,让破解者无法清楚正确地反汇编程序的内容,迷失方向。(花指令)目的就是利用反编译工具漏洞,来使工具无法使用。jd-gui的bug其实挺多了
很多特殊代码块或者字段集都能够让其崩溃无法反编译出源码。
不过花指令的注重的思想,比较平常的就很容易被破解。后来在看雪安全论坛里看到
爱加密app加密平台,试用了下,感觉还不错,一直在用。你可以试试。
 
目前Android怎防止apk程序被反编译?预防手机游戏被破解的问题, 除了proguard代码混淆方法,目前不行了

对DEX加密保护啊!!!

就是给Android APK做的高级加密保护,一般的混淆代码和防二次打包都不行了。所以我现在都用爱加密的保护,对DEX、RES、SO库等主要的Android APK文件加密。(而且还是免费的)
 

http://www.bkjia.com/Androidjc/854675.htmlwww.bkjia.comtruehttp://www.bkjia.com/Androidjc/854675.htmlTechArticle分享:APK高级保护方法解析(一),分享apk保护解析 查天气、找美食、玩游戏、买电影票、网上购物……安装APP后,手机变成“百事通”。...

本文源自: 环亚国际



上一篇:Android AppWidget,appwidget 下一篇:没有了