Android防二次打包

Android防二次打包

1.伪加密

参考:http://www.52pojie.cn/forum.php?mod=viewthread&tid=322701

第一个办法:  伪加密
这个方法是在网上看到的 


原地址第一个办法:  伪加密
这个方法是在网上看到的 
源地址是:http://bbs.pediy.com/showthread.php?p=1195662&mode=threaded



APK在PC上面就被看作一个压缩格式文件,在手机上面它就算一个可执行格式文件。。。两种格式对它的读取要求也有区别,所以说利用这个区别来实现伪加密。。。对PC端来讲伪加密的APK没法被解包无法被反编译 但是对android系统来说 它完全不会影响正常的安装运行(对4.2以前的系统)。。。所以说伪加密能够100%防止PC端解包、查看而又不影响软件在手机上面的正常运行。。。

伪加密的原理: 读取APK的字节,找到连续4位字节标记为”P K 01 02”的后第5位字节,如果是0表示不加密,如果是1就表示加密(伪加密就强行改成1  反伪加密就是把1改成0就可以了)。。

APK在PC上面就被看作一个压缩格式文件,在手机上面它就算一个可执行格式文件。。。两种格式对它的读取要求也有区别,所以说利用这个区别来实现伪加密。。。对PC端来讲伪加密的APK没法被解包无法被反编译 但是对android系统来说 它完全不会影响正常的安装运行(对4.2以前的系统)。。。所以说伪加密能够100%防止PC端解包、查看而又不影响软件在手机上面的正常运行。。。

伪加密的原理: 读取APK的字节,找到连续4位字节标记为”P K 01 02”的后第5位字节,如果是0表示不加密,如果是1就表示加密(伪加密就强行改成1  反伪加密就是把1改成0就可以了)。。


代码就不留了,发的链接也有java代码,思路也给了。。
自己按照那个思路写的代码, 随便对一个APK进行 伪加密前和伪加密后的对比图如下:
伪加密前:


 
 
 
 

 

伪加密后:

 
 
 
 



伪加密在android 4.2系统发布之前是比较出名的,看到不少开发者使用他, 这种方法兼容不到4.2系统了。
这种加密方法可能也会影响上传市场,因为市场需要拆包检验权限  加密后无法被拆包 估计市场会提示无效APK文件什么的吧。。。



2.根据打完包得到签名指纹,然后上传服务器,启动时获取自身的签名指纹和服务器上正确的指纹的进行对比,确定是否修改过。


  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值