某K字头运动软件逆向分析-课程精讲

本篇承接上一篇某K字头运动软件逆向分析-登录时非法的请求

在跟随视频训练时,很可能有些细节自己注意不到,以至于一些动作不规范,练习新动作时看一下讲解还是有必要的。

许多课程都是前面一两节可以免费观看讲解,后面的就需要开通会员才能查看了,比如我搜了个训练腹肌的课程,在课程内容中选择一节查看讲解

此时会弹出一个弹窗,在非会员的情况下只能看到大图模式下的重复动作,点击左上角的“查看精讲”按钮会跳转到一个h5页面,精讲内容列表中只有前两节是可以免费试看的,后边内容都是加锁的。

adb命令查看下页面activity,是一个WebViewActivity

adb shell dumpsys activity top

从反编译代码中可以看出使用的自定义WebView进行的页面加载,对其相关方法尽心hook,发现请求的是远程url

浏览器打开该url确认和app中看到的是同一个页面,但是控制动态下发的页面显然比较困难,如果能和java层有些联系或许还有办法,能产生联系的点能有什么呢?想到了两个:

1、桥调用

2、网络请求

分别看下能不能找出什么端倪。

桥调用

在其自定义WebView(K***WebView)中,包含了许多桥方法,是通过a方法进行调用的,其中包括播放视频桥,不过需要在h5上调用后才能走到,好像并不能满足我们的需求

网络请求

首先在接口中发现是否可以播放仅仅是通过一个preview字段进行控制的,使用mock数据改成preview: true就可以进行播放了,虽然能播放了,但是这太不方便了,显然不能每次看精讲时都用代理改数据,我们尝试在jeb中搜索,看看java层会不会有相关字段的解析逻辑,全局搜preview字符串,但是太多了,尝试搜一下上一级字段videoInfos,jeb中只搜到了三个,并且都和VideoInfosBean有关,那我们就看下这个类

里面只有上面接口返回的播放参数,没有我要找到preview,看起来这个Bean可能不是上面接口使用的bean,有点失望。。。,不过可以确定的是这个Bean一定和某处的视频播放有关。

上下翻找时看到了同文件中的另一个类PermissionBean

这个很明显是用来判断是否是会员的啊,用hook的方式将a()、b()方法返回值全部修改为true,看看有什么效果。

“查看精讲”按钮没有了,在弹层页面直接播放了精讲内容,踏破铁鞋无觅处啊。。。

修改源码,将WorkoutCourseIntroData$PermissionBean.smali文件中的方法部分替换成

# virtual methods
.method public final a()Z
    .registers 2
​
    .prologue
    .line 9
    const/4 v0, 0x1
​
    return v0
.end method
​
.method public final b()Z
    .registers 2
​
    .prologue
    .line 13
    const/4 v0, 0x1
​
    return v0
.end method

重新打包测试,可以正常播放,效果和hook一致。

不以学习为目的逆向就是耍流氓🙄,建议支持正版。

                                                                  欢迎关注公众号:从技术到艺术

                                                      

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值