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