Android 加固

本文主要讲的是本人在工作中接到的一个加固任务后所经历的探索之路,有一些方案的说明,但是没有源码,伸手党敬免了。

1)接到的任务是对sdk项目进行防篡改,最初的要求只是需要保证第三方集成sdk的开发者不能通过反编译修改提供的sdk进行篡改逻辑后重新编译,窃取用户信息。第一个方案:java的class文件是可以做md5校验的,在android上仿照这个思想通过dex解析出我们sdk中的类,根据这些类的字节码做md5校验来保证sdk不被篡改。

这样的问题就是解析dex中对应类的字节码难度大,未实验成功。

2)在找解析dex资料的时候发现了平时都没用过的2个类,DexFile类和DexClassLoader,通过阅读源码及网上查找资料,了解到了可以用DexClassLoader加载外部的jar或dex文件(可自行查找资料,之前看过很多的博客,时间久远,已经找不到链接了),然后提出了新的方案:将sdk进行拆分,核心代码逻辑抽出来独立一个项目,打成jar包,然后将剩下的开放逻辑作为一个接口项目,在接口项目中实现加载核心jar,然后可以对这个jar文件进行md5校验,保证核心逻辑不被篡改。

这样其实已经实现了一开始的任务要求了,但是还是有问题,MD5校验的逻辑是暴露在接口项目中的,恶意开发者可以通过更改接口项目的jar,传一个正确的md5进行校验

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值