Last updated
Was this helpful?
Last updated
Was this helpful?
提前准备好的应用(人人视频5.5.1)
使用class-dump导出头文件,便于我们定位目标。
class-dump -H MachO文件名 -o 输出的文件夹/
这里我想要实现非VIP用户可以查看VIP视频。
一般情况下我们会通过类似isVIP
这样的字眼去进行相关的判断。
Cycript链接手机进行分析
通过在Headers中搜索isLogin
看到一个很可能是用来判断登录态的东西:
原版
Hook版
通过!这里的立即登录
已经变成立即开通
了
这里因为是直接改写了登录状态的返回值,所以这里有了大量的错误提示:
2021-05-23 14:52:09.592113+0800 PUClient[6981:2390642] You should call login api before calling any im related api
从UI层开始分析
RRVipUserInfoView
看看它内部有没有做数据逻辑
看起来
resetStatus
&reloadUIData
是有做些请求的,我们先记录一下。继续分析。
RRVipBannerTopCell
这里看到一个
@property(retain, nonatomic) RRTopBannerModel *bannerModel;
但是没有和用户相关的模型属性,推测
VIP
的判断是在RRVipUserInfoView
内部!
通过Headers查找VIP关键字,逐个查看,发现RRIMManager
疑似。而且还是个单例。我们Hook看下有什么效果。
下面又找到几个,可能的文件
其中有这样一个属性:@property(retain, nonatomic) RRMedalModel *vipMedal;
查看Header后发现疑似VIP相关字段
在第二步的
UserInfoConfig
中发现有RrmjUser
属性存在,这里准备在运行时set一个我们自己创建的对象,重写会员是否过期的方法。
Logos代码:
结果
之前
开通会员
的入口都变成了续费了。哈哈哈哈但是观看会员视频还是只能试看5分钟
下面的目标就是解除5分钟的限制了!
试着直接把广告加载的方法Return了,但是直接不能加载视频了。于是改成不用等就能点跳过。
列表页显示成功,没有了VIp标签
但是点击对应集数观看的时候就报错了
试了很多数据模型进行改写都不行
免费的视频流,在浏览器即可访问
VIP视频免费5min看的视频流,调整参数也不能访问完整视频。从域名看的话免费的放在腾讯云收费的放在阿里云。
基本可以确定,VIP视频的逻辑是有在视频流做处理的,不能简单通过客户端调整进行破解操作。
人人视频破解暂时告一段落。
不过也算挺有收货的