看的懂的闭着眼都会,这里主要面向小白
const-wide v0, 0xf4849500L
里面0xf4849500L是时间戳: 4107838464 对应现实时间:2099年12月31日
0x0 = 0
0x1 = 1
大纲:
0. 找到判断VIP函数位置
1. 修改isvip 直接返回true 或 1 (是不是vip?是!)
2. 修改getUser_end_time 直接返回0xf4849500L (会员什么时候过期?2099年!)
3. 找到checkPermission方法名 把里 除play()以外的所有内容全部删了
4. 保存-退出-签名-安装 一气呵成
注意: 没有登录是无法显示VIP的并且也不能缓存,需要登录后才能正常使用。
其他细节:
搜索isvip找不到?
1. 搜索类型: “代码”
2. 勾选 “搜索子目录”
3. 取消勾选 “大小写匹配”
4. 取消勾选 “正则表达式”
5. 取消勾选 “完全匹配”
checkPermission细节:
定位到Lcom/sjm/zhuanzhuan/widget/PlayPermissionView下的checkPermission()方法名直接改成如下内容
.method private checkPermission()V
.registers 2
.line 1
invoke-direct {p0}, Lcom/sjm/zhuanzhuan/widget/PlayPermissionView;->play()V
return-void
.end method
原理: 点击播放后 管你有没有登录有没有VIP直接调用play()方法名开始播放视频。
三元运算:
v0 == 1 ? true : false
解读:如果v0等于1 返回true,反之返回false觉得有帮助的,就别交出三连了[doge],去爽吧