大学生
 
- 金币
- 1533
- 好评
- 16
- 信誉
- 120
|
本帖最后由 景晕 于 2025-10-21 17:28 编辑
基础教程
首先脱壳
Dex修复-回填-取消自动签名
AndroidManifest.xml搜索
查找 MyWrapperProxyApplication
替换 com.michuang.ppttemplate.MyApplication
从两种不同的思路分析
【思路一】
从图中可以看到"开通尊享会员,畅享全部专属权益"的字样,对它下手
①代码搜索"尊享"
从上图中可以得知
- invoke-static {}, Ld7/i;->g()Z
- if-nez v0, :cond_b
复制代码
检查用户是否已经是 VIP 会员
如果不是会员,显示提示信息:"开通尊享会员,畅享全部专属权益"
②点击g()方法跳转
从上图中可以得知
- invoke-virtual {v0}, Lcom/wm/common/user/info/UserInfoManager;->isVip()Z
复制代码
③点击isVip()方法跳转
看到这里肯定有人会觉得直接对isVip()方法赋值不就行了
实则不然]
从上图中可以得知
- const-string v0, "isR"
- invoke-static {v0}, Lcom/wm/common/util/SPUtil;->getBoolean(Ljava/lang/String;)Z
- if-eqz v0, :cond_10
- invoke-virtual {p0}, Lcom/wm/common/user/info/UserInfoManager;->isOverdue()Z
复制代码
用户被认为是 VIP 必须同时满足:
已注册 VIP("isR" = true)
会员未过期(isOverdue() = false)
只有两者都满足才是真正的有效 VIP 用户
④isVip()赋值为true,isOverdue()清空代码或赋值为false
效果图
【思路二】
从图中可以看到"普通用户"的字样,点击开通有"永久""一年"等字样,可以猜测有"永久会员"之类的字样
①Dex常量-过滤-"会员"
优先搜索"永久会员",如果没有"永久会员"就尝试搜索"普通用户",我这里搜索的是"普通用户"
这个方法很长,只需要了解其中判断vip的代码即可
大概意思如下
- if (已登录) {
- if (会员已过期) {
- // 显示普通用户UI
- } else if (是会员) {
- if (是永久会员) {
- // 显示"永久会员"
- }
- if (自动续订中) {
- // 显示续订信息
- }
- // 显示VIP图标和会员信息
- } else {
- // 显示普通用户UI
- }
- }
复制代码- UserInfoManager.getInstance().isOverdue()
复制代码- UserInfoManager.getInstance().isPermanentVip()
复制代码 如果返回true:永久会员
②点击isPermanentVip()方法跳转
③isPermanentVip()赋值为true,isVip()赋值为true,isOverdue()清空代码或赋值为false
Ld7/i.g()可赋值可不赋值
效果图
思路二更简单
其实isPermanentVip()在思路一中已经出现过了
isOverdue(),isPermanentVip(),isVip()是三个连续的方法
兜兜转转又回来了
成品-PPT模板君_2.1.5_免登录高级版
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
-
查看全部评分
总评分:金币 +1
|