目标:破解fulao的vip(任意一个功能均可)
VIP功能很多,先尝试改清晰度:
用apktool反编译项目后,在工程中搜索“标清”,发现资源字符串中“高清”对应的标识。
最后定位到该资源在代码中用到的位置。
第一处是com.ilulutv.fulao2.film.l类的d1方法,到jdax中看java代码。
这里可以看到如果com.ilulutv.fulao2.other.f.g.j0()返回的是480就会显示为“高清”,不然就是“标清”。
这个j0方法是从SharedPreference中读取保存的quality的值,默认为240。通过名字也就可以知道这是记录使用的清晰度的字段。
那么直接hook这个方法让其返回480应该就可以了。另外两处,也大致看了下,一处应该跟弹出的选择清晰度的对话框有关。感觉都用不上,就先hook下j0试试:
Hook上后,文本确实变成了高清,旁边的图标没变,等会儿再处理。
再搞下图标。用uiautomator查看下图标对应的id:
在com.ilulutv.fualo2.film.l类中定位到使用之处,这里存为了ImageView对象z0。
z0在这个类中的使用都集中在一个方法中:根据图标资源命名可以判断传入参数z为是否是vip,i2为清晰度,那么简单的hook这个方法,至少在图标显示上可以达到vip的高清效果。
但是现在还是无法选择清晰度,估计还是因为进到这个Activity的时候就被判定为没有vip。
毕竟前面hook的a方法传入的判断是否为vip的参数z就是false。看看a方法从哪里调用:
s方法调用了3次,去看一下:
而且如果z为true,走的分支里直接会根据前面hook过的j0方法判断清晰度来决定显示的图标。还会点亮其他图标,虽然没什么用。
那么归根结底,这个判断vip的标识是怎么来的呢,往前回溯s方法的调用,只有一处:
可见是由com.ilulutv.fulao2.other.f.h.c方法得到的:
这个类本身名字就很激动人心,似乎包含了判断VIP的很多方法。
这个当前用到的c方法是判断SharedPreference里存的vip的值是否为true,以及vip是否已经过期。
这里hook c方法,让其返回true,再hook a 方法,改下vip过期时间。顺便把d方法也改了,因为也是类似的判断。
结果却不让用了:
发现是视频请求中出现了验证错误,这就应该时服务器端做的验证了。
可能这就是暂时的极限了,其实还做了不少研究,比如下载到缓存和切换线路,但都不顺利,就没有记录过程。
看雪ID:Avacci
https://bbs.pediy.com/user-home-879855.htm
*本文由看雪论坛 Avacci 原创,转载请注明来自看雪社区