APP防二次打包技术破解演示

http://www.ijiami.cn/Video?v=4android


 

        Android系统的开放性和免费性等特征让开发者和用户趋之若鹜,用户也渐渐习惯了Android应用的这种免费午饭,但在免费的背后却有着巨大的安全阴影。安全

       “Android APP二次打包”则是盗版正规Android APP,破解后植入恶意代码从新打包。无论从性能、用户体验、外观它都跟正规APP如出一辙可是背后它确悄悄运行着可怕的程序,它会在不知不觉中浪费手机电量、流量,恶意扣费、偷窥隐私等等行为。ide

        面对二次打包很多公司都有本身的防范措施,知名公司的APP几乎都是本身在程序内部作过处理防止其APP被二次打包,一旦打包后从新运行则程序自动退出。接下来,我就来详解一下如何防止APP被二次打包。性能

        要实现代码内部防止APP被二次打包首先得了解APK的机器识别原理,APK的惟一识别是依靠包名和签名来作鉴定的,相似豌豆夹的洗白白、360手机卫士等安全软件对APK的山寨识别,他们就是依赖包名来肯定APK而后经过签名来肯定其是否山寨。因此说本身的程序内部在启动的时候能够经过获取APK自己的签名而后和正确的签名作对比来识别本身是否被二次打包。spa


 

         经过PackageManag对象能够获取APK自身的签名。orm



 

        经过对签名的码的分解获得一串20左右的字符串,此字符串则是APK的签名的MD5值,经过获取的签名MD5值与正确的MD5值进行对比,就能够识别其APK是否被盗版。对象

 

        下图是一些已作过保护的APP的代码块分析:开发



  

        上图是”XX电池管家”的防止二次打包的关键代码字符串

 

        以上两处都是smali层的代码,以上2处代码的截图都是下载量很是高的APP所作的防止二次打包的处理,其处理的代码确定会使用到的关键代码是get

        Landroid/content/pm/PackageInfo;->signatures:[Landroid/content/pm/Signature。

         此方法可以起到必定的安全做用,通常的打包党面对它是迫不得已的,若是你了解一些smali语法它的做用就等于0了。

相关文章
相关标签/搜索