关于接入头条的应用管理中心分包SDK,在看完说明文档后,下载SDK。 查看了代码后,好家伙。用到的是美团walle(因为我也有使用,所以哪怕有混淆也基本一眼看出来了)。根据以下判断得出的
HumeSDK代码但是问题来了,美团walle针对的是V2签名的,头条的分包SDK没有限制说明要用V2,继续查看
这部分是跟walle差不多的
查找方法a(context)
不难看出,如果e是flase的话,再次执行c(context), 然后判断d[0],d[1] 有值的话返回,否则返回b.d , b.d = ""
然后到a(a(context))外层的
代码简单,不多解释。
那么现在不难得出, 重点在c(context)这个方法里面了。
再次分析c(context)
查看跟美团相似的
通过关键字UnsupportedEncodingException 在美团walle代码查找,比对,不难发现代码跟PayloadReader几乎一模一样
然后把目光移动到walle拿不到数据的情况下,
JADX反编失败,没问题。我们可以看smali,但是如果经验丰富的话其实也不难得出,V2签名拿不到值,那应该是在V1签名的情况下,V1签名的情况下打包方式了解的话,不需要重签名的话,也就只剩下
1、往apk的meta-info目录塞文件(写文件夹)
2、往apk 的zip file comment 区域写入数据(写注释)
观察smali代码
看到这个基本能确定了使用的是往apk 的zip file comment 区域写入数据
至此,基本分析完毕。
剩下的就是修改之前使用到的美团walle的写入方式,然后把之前自己使用的walle代码删除,引入humeSDK,
在读取渠道参数的时候调用humeSDK
然后修改之前的写入
以及打包后的校验
至此基本完成.
PS:上面的基本都是总结,过程中很多验证过程已经省略了
网友评论