xposed 破解某短视频app(02)
2019-05-10 本文已影响213人
蓝师傅_Android
今天继续来破解番茄的其它模块
如果本文没看懂请先看上一篇
xposed 破解某短视频app(01)
上次破解了短视频模块播放次数限制之后,发现播放经常弹出 参数错误 的toast,然后看到”我的“界面的次数没有被hook

说明上一次没有hook彻底,如果应用中其它地方用了这里的 0/30 做判断,那么有可能还会被限制,所以这篇文章就开始了,请继续看:

首先,打开 MineTabFragment 这个类,这个上一章已经分析过了,”我的“ 那个tab对应 MineTabFragment,然后寻寻觅觅,起初没找到免费观看次数是哪个textview,然后翻到最上面,发现导包的地方有个 import com.one.tomato.utils.VideoPlayCountUtils;
,顾名思义,就是获取播放次数的类,然后就发现了上图这个调用的地方
if (VideoPlayCountUtils.a().b() != -2) {
z = false;
}
a(z, VideoPlayCountUtils.a().b(), VideoPlayCountUtils.a().c());
看下 VideoPlayCountUtils.a()

VideoPlayCountUtils 是一个单例,所以我们直接看 b 方法

和c 方法

看到 video_play_count 没,都是跟播放次数有关,盘它就对了
private static void hookVideoCountUtil(XC_LoadPackage.LoadPackageParam param, ClassLoader loader){
hook_method("com.one.tomato.utils.VideoPlayCountUtils", loader, "b", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
LogUtil.d(TAG,"afterHookedMethod VideoPlayCountUtils.b --- " + param.getResult());
}
});
hook_method("com.one.tomato.utils.VideoPlayCountUtils", loader, "c", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
LogUtil.d(TAG,"afterHookedMethod VideoPlayCountUtils.c --- " + param.getResult());
}
});
}
先打印两个值看看,
build and install 重启xx社区,看log

28/30,对应就是剩余播放次数和总的可以播放次数
上面的原图是29,因为中间手抖播放了一次,所以剩下28,没毛病。。
改返回值啦,很简单了,最终代码如下
private static void hookVideoCountUtil(XC_LoadPackage.LoadPackageParam param, ClassLoader loader){
//剩余播放次数
hook_method("com.one.tomato.utils.VideoPlayCountUtils", loader, "b", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
LogUtil.d(TAG,"afterHookedMethod VideoPlayCountUtils.b --- " + param.getResult());
param.setResult(1000);
}
});
//总的可以播放次数
hook_method("com.one.tomato.utils.VideoPlayCountUtils", loader, "c", new XC_MethodHook() {
@Override
protected void afterHookedMethod(MethodHookParam param) throws Throwable {
LogUtil.d(TAG,"afterHookedMethod VideoPlayCountUtils.c --- " + param.getResult());
param.setResult(1000);
}
});
}
重新打开xx社区

可播放了总次数都是1000,怎么播都不变了

好了,本次xposed 分享算是非常简单了,大家学会了没,源码已同步到github,相关资源可以从github找到
源码学习:点这里
分享不易,随手start
xposed模块交流群:

声明:本文内容只供参考学习,不能用于商业用途。
有问题可以到群里一起交流学习,大家一起进步。