大学生
 
- 金币
- 2119
- 好评
- 53
- 信誉
- 100
|
本帖最后由 明悦 于 2025-9-24 22:16 编辑
开局先叠甲上面说的是这个软件没有说是这个狗头保命
软件有加固,目前是梆梆加固,想必脱修也难不到各位开始步入正题:
首先搜索VIP,看看有没有相关的方法,搜出来了一共是19个结果下滑大概看了一下,看见了一个有关VIP到期时间的那么这里的到期显示肯定是指获取会员之后才显示的时间,我们先不用赋值时间,先查找一下它的调用在哪里(通常来讲,如果是vip,才会显示到期时间)
然后我们可以看到一共有3处调用结果,可以看到有一个翻译过来就是vip卡片的意思,也就是说vip显示的区域,我们点进去查看这个所在的方法名(太多了就不放图了 )也就是r方法 纵观整个方法,可以看到在整个方法中,p2 被多次用来做条件判断- if-eqz p2, :cond_1e # 如果p2的结果为true(是VIP)
- const-string v3, "#FADCC6" # 则使用VIP颜色
- goto :goto_19
- :cond_1e # 如果p2的结果为false(不是VIP)
- const-string v3, "#FFB33C" # 则使用非VIP的颜色
- # 开通会员按钮显示逻辑
- if-nez p2, :cond_33 # 如果不是VIP
- const/4 v3, 0x0 # 就显示按钮
- goto :goto_35
- :cond_33 # 如果是VIP
- const/16 v3, 0x8 # 就会隐藏按钮
- ……
- ……等其他的p2判断
复制代码
那么好,我们在开头强制设置p2=1如图所示这样修改后,我们打开软件就可以看到已经成功修改了会员卡片的显示样式,但是我们的目的是修改会员,而不是会员卡片的显示样式,所以我们继续查找 r方法的调用 一共是有五处调用但是我们能用到的也就只有前三处,然后一共是由两个方法所调用- 第一个方法 (p):根据传入的VIP状态码,更新VIP卡的显示
- 第二个方法 (s方法):是Kotlin生成的默认参数辅助方法,让调用方可以省略部分参数(用户信息和VIP状态)
复制代码 那么就注重于分析s方法根据该方法的作用来分析,这一处是一个获取用户VIP状态的方法,我们跳转,并赋值1然后保存安装就好了
到这里我们修改会员的教程就到此结束了,完结撒花 补充(可有可无):首先肯定是先登录后才能获取用户VIP的对吧?那所以p方法上面的o方法是……?赋值1试试看 还有个图标修改方式,省流版本:- com.growing.topwidgets.more.MeTabFragment.F0方法把判断改了
- .method public static final F0(Lcom/growing/topwidgets/more/MeTabFragment;I)Lkotlin/Unit;
- .registers 3
- invoke-virtual {p0}, Lcom/growing/topwidgets/more/MeTabFragment;->T()Lcom/growing/topwidgets/databinding/FragmentMyTabBinding;
- move-result-object p0
- iget-object p0, p0, Lcom/growing/topwidgets/databinding/FragmentMyTabBinding;->x:Landroid/widget/ImageView;
- sget p1, Lcom/growing/topwidgets/R$mipmap;->icon_vip_status_yes:I
- invoke-virtual {p0, p1}, Landroid/widget/ImageView;->setImageResource(I)V
- sget-object p0, Lkotlin/Unit;->INSTANCE:Lkotlin/Unit;
- return-object p0
- .end method改为这样
复制代码 这个就变为是会员的样式了,然后剩下的你们自己看着改吧没了,拜拜 |
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有账号?立即注册
x
|