返回列表 发新帖

『逆向分析』Live2DViewerEX破解签名验证(分析代码)

[复制链接]

6

主题

59

帖子

341

积分

初中生

Rank: 3Rank: 3

金币
121
好评
3
贡献
1
QQ
发表于 2020-9-14 14:21:11 来自手机  | 显示全部楼层 | 阅读模式
Live2DViewerEX 是一个跨平台动态壁纸解决方案,目前支持Windows、Mac和Android


官网下载地址:http://live2d.pavostudio.com/doc/zh-cn/android/

Live2DViewerEX是一款动态壁纸制作工具,我之前试过破解,不过由于防护层次太多的原因,最终以失败告终。

利用MT管理器分析安装包得知:这款软件有签名验证,重签名就会退出APP,注意这里不是闪退,而是退出。

通过反编译APP的清单文件(AndroidManifest.xml)得知该应用的Application路径是:com.pavostudio.live2dviewerex.Live2DApplication直接在dex里找到这个Application,如下图所示:

将Live2DApplication转为Java后得到如下代码:

可以看到一个非常显眼的方法exit() 在程序里exit代表退出的意思,我们看一下里面是怎么处理的:exit()方法里首先调用terminate()方法循环遍历保存在集合里的所有Activity并结束掉(退出Activity),然后又将保存在集合里的所有Activity清空。

我们接着来看,调用terminate()方法后使用Process.killProcess(Process.myPid())方法杀死了当前进程。

最后通过System.exit()方法结束当前正在运行中的Java虚拟机

分析完exit()方法后得知这个方法是一个退出程序的方法,然后再找一下哪个地方调用了exit()方法,搜索代码Lcom/pavostudio/live2dviewerex/Live2DApplication;->exit(I)V得到如下结果:

将UnityMessenger转为Java得到如下代码:

搜索exit得到如下代码:

表示判断不成立时执行exit()方法退出程序,那么我们只要保证这个exit()方法不被执行就能防止软件退出了。

返回smali代码,找到调用exit()方法的位置,如下图所示:

直接将这行代码删除或注释即可,如下图所示:

签名后就能正常运行了!!!

安卓梦雪原创教程,转载请注明出处,谢谢!
原文出处:AIDE教程网

本帖子中包含更多资源

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

x
一只可爱的雪儿
回复

使用道具 举报

31

主题

733

帖子

2319

积分

大学生

Rank: 5Rank: 5

金币
409
好评
4
贡献
0
发表于 2020-9-14 14:26:29 来自手机  | 显示全部楼层
沙发
回复

使用道具 举报

4

主题

1029

帖子

3308

积分

大学生

Rank: 5Rank: 5

金币
1013
好评
0
贡献
0

MT论坛帅哥考神

发表于 2020-9-14 15:08:43 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

12

主题

1032

帖子

3123

积分

大学生

Rank: 5Rank: 5

金币
821
好评
1
贡献
0
发表于 2020-9-14 15:38:34 | 显示全部楼层
谢谢分享
回复

使用道具 举报

19

主题

351

帖子

1203

积分

高中生

Rank: 4

金币
322
好评
6
贡献
0
QQ
发表于 2020-9-14 16:03:33 来自手机  | 显示全部楼层
谢谢大佬分享
回复

使用道具 举报

39

主题

2218

帖子

8107

积分

硕士生

Rank: 6Rank: 6

金币
1791
好评
64
贡献
0

MT论坛帅哥MT论坛活跃会员考神

发表于 2020-9-14 16:11:19 来自手机  | 显示全部楼层

回复

使用道具 举报

39

主题

2218

帖子

8107

积分

硕士生

Rank: 6Rank: 6

金币
1791
好评
64
贡献
0

MT论坛帅哥MT论坛活跃会员考神

发表于 2020-9-14 16:15:16 来自手机  | 显示全部楼层
好像只有少部分APP签名验证用killProcess()方法,exit()方法倒是挺多的。
回复

使用道具 举报

6

主题

59

帖子

341

积分

初中生

Rank: 3Rank: 3

金币
121
好评
3
贡献
1
QQ
发表于 2020-9-14 17:12:31 来自手机  | 显示全部楼层
chengxiang 发表于 2020-9-14 16:15
好像只有少部分APP签名验证用killProcess()方法,exit()方法倒是挺多的。

这个软件finish、exit、killProcess都用到了,
回复

使用道具 举报

1

主题

60

帖子

170

积分

小学生

Rank: 2

金币
59
好评
0
贡献
0
发表于 2020-9-14 18:07:26 | 显示全部楼层
学习了 谢谢分享
回复

使用道具 举报

17

主题

445

帖子

1780

积分

高中生

小百

Rank: 4

金币
109
好评
49
贡献
0
QQ
发表于 2020-9-14 18:29:05 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

3

主题

1742

帖子

3626

积分

大学生

Rank: 5Rank: 5

金币
745
好评
1
贡献
0
发表于 2020-9-14 18:31:29 来自手机  | 显示全部楼层
学习学习
回复

使用道具 举报

6

主题

357

帖子

1255

积分

高中生

Rank: 4

金币
55
好评
0
贡献
1
发表于 2020-9-14 18:39:34 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

23

主题

727

帖子

2300

积分

大学生

Rank: 5Rank: 5

金币
50
好评
4
贡献
0
QQ
发表于 2020-9-14 20:18:36 来自手机  | 显示全部楼层
哈希值不一
回复

使用道具 举报

0

主题

1302

帖子

2781

积分

大学生

Rank: 5Rank: 5

金币
913
好评
0
贡献
0
发表于 7 天前 | 显示全部楼层
谢谢分享
回复

使用道具 举报

21

主题

3134

帖子

8138

积分

硕士生

滑稽

Rank: 6Rank: 6

金币
1247
好评
7
贡献
0
发表于 4 天前 来自手机  | 显示全部楼层
感谢分享
回复

使用道具 举报

发表回复

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

本版积分规则

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