返回列表 发新帖

【小白逆向】原创-详细分析灵占星座28.4版本去除更新,解锁会员思路

  [复制链接]

43

主题

499

回帖

2282

积分

大学生

Rank: 5Rank: 5

金币
929
好评
22
信誉
116
发表于 2022-11-18 22:18:03 | 显示全部楼层 | 阅读模式  来自 四川
本帖最后由 逍遥星晨 于 2022-11-18 23:29 编辑

适合小白的教程,大佬们飘过即可!(由于是小白教程,所以写的详细一些,只为刚刚接触逆向的能够看懂,因为我也是这样过来的,看见有的教程只有一个结果,确实是找不到任何思路,为什么是这样呢?所以今天就拿这个软件写个简单的帖子)

准备工具:mt管理器和测试软件零占星座28.4版本
声明:发帖仅供交流,不提供任何软件以及成品


软件无壳无签名验证,需要登录(手机号登录即可),不登录不显示会员情况
一、解锁会员

1、mt提取安装包【下图所示】


2、习惯性的去除签名校验,去除签名验证只有会员可以使用,免费的可以用np管理器代替【下图所示】


3、点击查看,进入到app内部。里面有常见的有assets文件,lib文件,META-INF文件,res文件,AndridManifest.xml文件,classes.dex文件和resources.arsc文件

4.然后点击classes.dex文件,选择dex++[

5.进去后全选,下图所示


6.点击常量,过滤会员。下图所示

7.找到尊贵VIP会员,点击它进行搜索,下图所示

8.搜出来一个结果,下图所示


9.然后点击它,会自动跳转到如下图所示的界面

10.在这里解释一下,为什么会选择尊贵的VIP会员,它的意思就是已经是会员啦,所以选它。在刚进来的这个页面,我们先往上划,看见一个跳转判断if-eqz v1, :cond_19b。在这里,就是判断是不是会员,也就是说,当V1等于0的时候它就跳到cond_19b。刚才也解释了,尊享vip会员就是会员。如果它跳转了就不是会员了,所以就不能让v1等于0.
接下来看看一下。这个V1的值在哪里。通过观察代码发现,V1的值是通过getisvip来获取的。前面已经分析过了。不让V1等于0就可以。那么我们就让V1等于1也就不等于0了,它也就不再跳转了,下面代码所示。点击getisvip进行跳转。下图所示
invoke-virtual {v0}, Lstar/goodhope/main/my/vip/VIPInfoModel;->getIsVip()Z

11.跳转进去后进行赋值const v0,0x1,下图所示

12.刚好在赋值会员这里,下面有一个方面名,getvipexpiretime,会员到期时间,这里就是进行会员时间赋值的,由于它返回的是return-object格式,那么我们赋值就要用const-string v0,""来对它进行赋值时间了,这里的双引号里面填写时间即可,例如const-string v0,"2099-12-12",下图所示


到这里,会员就解锁完成了。【记得要保存签名哦】

二,去除更新提示,如下图所示,进入软件的时候有一个提示更新,我们弄逆向的不能软件一更新就再来一次逆向吧,所示呢,就把这个更行给取消了。下图所示

方法一:找到AndroidManifest.xml,然后点击它,点击反编译,下图所示


进去以后,在下图所示框起来的地方就是版本号,在这里我们只需要把它现在的版本号改来比原来的版本号大就可以了。下图所示


改好如下图所示


然后保存签名安装即可【亲测这个软件这样修改可以去除更新提示】,有的软件更改版本号是不能去除更新的,那么就要用到其他方法了

方法二:通过进入软件的弹窗提示,我们找它的关键词,在classes.0dex中去查找

在这里,我们看见他有一个更新提示,那么我们就打开classes.dex,跟前面修改会员的时候一样,选择dex++,然后全选。进去以后选择常量,然后过滤更新,如下图所示

然后我们找到更新提示,并点击它进行搜索,如下图所示

搜索出来只有一个结果,如下图所示

然后我们点击它,它自己就会进行跳转,如下图所示

接下来我们来看一下代码,代码如下
method private showHint()V
    .registers 4

    .line 182
    new-instance v0, Landroid/app/AlertDialog$Builder;

    iget-object v1, p0, Lstar/goodhope/utils/UpdateUtil;->context:Landroid/content/Context;

    const/4 v2, 0x5

    invoke-direct {v0, v1, v2}, Landroid/app/AlertDialog$Builder;-><init>(Landroid/content/Context;I)V

    iget-object v1, p0, Lstar/goodhope/utils/UpdateUtil;->context:Landroid/content/Context;

    const-string v2, "更新提示"

    invoke-static {v2, v1}, Lstar/goodhope/utils/MyUtil;->TranslateChar(Ljava/lang/String;Landroid/content/Context;)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setTitle(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

    move-result-object v0

    iget-object v1, p0, Lstar/goodhope/utils/UpdateUtil;->updateInfo:Lstar/goodhope/utils/UpdateUtil$UpdateInfo;

    iget-object v1, v1, Lstar/goodhope/utils/UpdateUtil$UpdateInfo;->content:Ljava/lang/String;

    iget-object v2, p0, Lstar/goodhope/utils/UpdateUtil;->context:Landroid/content/Context;

    invoke-static {v1, v2}, Lstar/goodhope/utils/MyUtil;->TranslateChar(Ljava/lang/String;Landroid/content/Context;)Ljava/lang/String;

    move-result-object v1

    invoke-virtual {v0, v1}, Landroid/app/AlertDialog$Builder;->setMessage(Ljava/lang/CharSequence;)Landroid/app/AlertDialog$Builder;

    move-result-object v0

    iget-object v1, p0, Lstar/goodhope/utils/UpdateUtil;->context:Landroid/content/Context;

    const-string v2, "更新"

    .line 183
    invoke-static {v2, v1}, Lstar/goodhope/utils/MyUtil;->TranslateChar(Ljava/lang/String;Landroid/content/Context;)Ljava/lang/String;

    move-result-object v1

    new-instance v2, Lstar/goodhope/utils/UpdateUtil$3;

    invoke-direct {v2, p0}, Lstar/goodhope/utils/UpdateUtil$3;-><init>(Lstar/goodhope/utils/UpdateUtil;)V

    invoke-virtual {v0, v1, v2}, Landroid/app/AlertDialog$Builder;->setPositiveButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;

    move-result-object v0

    iget-object v1, p0, Lstar/goodhope/utils/UpdateUtil;->context:Landroid/content/Context;

    const-string v2, "取消"

    .line 188
    invoke-static {v2, v1}, Lstar/goodhope/utils/MyUtil;->TranslateChar(Ljava/lang/String;Landroid/content/Context;)Ljava/lang/String;

    move-result-object v1

    const/4 v2, 0x0

    invoke-virtual {v0, v1, v2}, Landroid/app/AlertDialog$Builder;->setNegativeButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;

    move-result-object v0

    new-instance v1, Lstar/goodhope/utils/UpdateUtil$2;

    invoke-direct {v1, p0}, Lstar/goodhope/utils/UpdateUtil$2;-><init>(Lstar/goodhope/utils/UpdateUtil;)V

    const-string v2, "忽略"

    invoke-virtual {v0, v2, v1}, Landroid/app/AlertDialog$Builder;->setNeutralButton(Ljava/lang/CharSequence;Landroid/content/DialogInterface$OnClickListener;)Landroid/app/AlertDialog$Builder;

    move-result-object v0

    .line 193
    invoke-virtual {v0}, Landroid/app/AlertDialog$Builder;->create()Landroid/app/AlertDialog;

    move-result-object v0

    .line 194
    invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V

    return-void
.end method


从这段代码中,我们看到了几个关键词,和进入软件时候提示更新的一模一样,所以这里就是我们要找的。在这里,提供两种方案来更改。更新提示是要通过->show()来实现的,那么第一种方案就是在 invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V这段代码前加上# invoke-virtual {v0}, Landroid/app/AlertDialog;->show()V,这样把它注释掉就可以了,如下图所示

方案二,在showHint这个方法名开头就进行return-void进行返回,这样代码就不会往下运行了,同样的实现了去除更新提示的效果,如下图所示


然后就一路保存,签名安装就可以啦

教程到此结束,由于是小白教程,所以内容有点多,请各大佬多指教,我也是刚接触逆向20多天的小白,很多都不懂,以后还要麻烦各位大佬多指导指导

帖子编辑不易,如果对您有用,请动动您的手一键三连,您的支持就是对我最大的鼓励
最后放一张修改后的图

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
已有4人评分好评 金币 理由
东之经北之纬 + 1 + 1 论坛难得一见的精品帖子,详细清晰,比那些.
小菜同学 + 1
By陈心弦 + 1
快乐小牛 + 1 + 7 赞一个!

查看全部评分 总评分:好评 +2  金币 +10 

回复

使用道具 举报

13

主题

1766

回帖

5824

积分

硕士生

Rank: 6Rank: 6

金币
1790
好评
21
信誉
130

MT论坛新人MT论坛最佳新人MT论坛帅哥考神MT论坛活跃会员

发表于 2022-11-18 22:21:08 来自手机  | 显示全部楼层  来自 湖南长沙
感谢分享
回复

使用道具 举报

32

主题

901

回帖

2247

积分

大学生

Rank: 5Rank: 5

金币
454
好评
4
信誉
54

MT论坛最佳新人MT论坛新人考神MT论坛帅哥

QQ
发表于 2022-11-18 22:22:33 来自手机  | 显示全部楼层  来自 广东肇庆
回复看看
回复

使用道具 举报

3

主题

342

回帖

1207

积分

高中生

Rank: 4

金币
646
好评
0
信誉
101
发表于 2022-11-18 22:23:07 来自手机  | 显示全部楼层  来自 贵州凯里
学习一下
回复

使用道具 举报

42

主题

2185

回帖

7118

积分

硕士生

Rank: 6Rank: 6

金币
2274
好评
5
信誉
100

考神

发表于 2022-11-18 22:25:29 来自手机  | 显示全部楼层  来自 广东广州
感谢教程,辛苦辛苦
回复

使用道具 举报

10

主题

1238

回帖

4436

积分

大学生

小云神

Rank: 5Rank: 5

金币
1430
好评
2
信誉
121

MT论坛新人考神MT论坛帅哥MT论坛最佳新人

发表于 2022-11-18 22:25:50 来自手机  | 显示全部楼层  来自 香港
感谢分享
回复

使用道具 举报

5

主题

613

回帖

2625

积分

大学生

Rank: 5Rank: 5

金币
0
好评
4
信誉
103
发表于 2022-11-18 22:26:21 来自手机  | 显示全部楼层  来自 河南
学习学习
回复

使用道具 举报

39

主题

1123

回帖

3685

积分

大学生

6

Rank: 5Rank: 5

金币
259
好评
27
信誉
146

考神MT论坛新人MT论坛帅哥

QQ
发表于 2022-11-18 22:26:21 来自手机  | 显示全部楼层  来自 河南安阳
谢谢分享
回复

使用道具 举报

22

主题

1866

回帖

6851

积分

硕士生

Rank: 6Rank: 6

金币
2556
好评
22
信誉
102
发表于 2022-11-18 22:26:30 来自手机  | 显示全部楼层  来自 浙江杭州
学习学习
回复

使用道具 举报

84

主题

4011

回帖

1万

积分

版主

论坛萌新

Rank: 7Rank: 7Rank: 7

金币
12158
好评
221
信誉
103

考神MT论坛帅哥MT论坛活跃会员MT论坛最佳新人MT论坛侠客MT论坛新人

QQ
发表于 2022-11-18 22:28:51 | 显示全部楼层  来自 广东广州
清空showHint方法也可以点击顶部导航图标,长按这个方法名选择清空方法
回复

使用道具 举报

14

主题

987

回帖

3858

积分

大学生

Rank: 5Rank: 5

金币
2077
好评
7
信誉
100

MT论坛帅哥MT论坛新人

发表于 2022-11-18 22:29:36 来自手机  | 显示全部楼层  来自 浙江杭州
学习学习
回复

使用道具 举报

11

主题

285

回帖

1155

积分

高中生

Rank: 4

金币
457
好评
1
信誉
100

考神

QQ
发表于 2022-11-18 22:30:30 来自手机  | 显示全部楼层  来自 河南郑州
学习一下
回复

使用道具 举报

7

主题

280

回帖

1331

积分

高中生

Rank: 4

金币
618
好评
1
信誉
100
发表于 2022-11-18 22:31:10 来自手机  | 显示全部楼层  来自 广东揭阳
谢谢分享
回复

使用道具 举报

7

主题

158

回帖

636

积分

初中生

Rank: 3Rank: 3

金币
87
好评
0
信誉
99

MT论坛新人

QQ
发表于 2022-11-18 22:33:00 来自手机  | 显示全部楼层  来自 广西梧州
看看…………
回复

使用道具 举报

3

主题

121

回帖

905

积分

高中生

Rank: 4

金币
232
好评
0
信誉
100
发表于 2022-11-18 22:34:48 来自手机  | 显示全部楼层  来自 山西太原
学习看看
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表