正好正己大佬发布了一系列课程,我最近学完了,手很痒痒,手头刚好有一款软件,我就拿来练手了,废话不多说,下面开始实战。
首先打开软件
image.png (24.93 KB, 下载次数: 0)
下载附件
广告倒计时
2023-6-26 21:16 上传
image.png (102.02 KB, 下载次数: 0)
下载附件
软件主页面
2023-6-26 21:28 上传
如图所示,开屏之后有5秒的强制广告,不能跳过(至于为什么广告没加载,我只能说懂的都懂)
如果有看过正己大佬的教程,想必各位应该想到很多种去除方式
这里我最先想到的是activity,拿出mt管理器
image.png (44.28 KB, 下载次数: 0)
下载附件
mt的记录功能
2023-6-26 21:25 上传
这里有一个activity记录,打开看一下广告到主页面的activity是如何跳转的
image.png (80.24 KB, 下载次数: 0)
下载附件
activity变化
2023-6-26 21:27 上传
可以看到,广告的activity和主页面不是一个activity。
最简单是思路就是直接启动主页的activity。
下面打开mt管理器,打开清单xml
image.png (144.99 KB, 下载次数: 0)
下载附件
清单xml
2023-6-26 21:31 上传
打开之后查找android.intent.action.MAIN
image.png (449.22 KB, 下载次数: 0)
下载附件
activity启动类
2023-6-26 21:32 上传
如图所示,将com.comeback.data.ui.main.LauncherActivity替换成刚刚mt记录的com.comeback.data.ui.main.MainActivity
image.png (455.08 KB, 下载次数: 0)
下载附件
替换启动类
2023-6-26 21:35 上传
保存后退出并签名app,然后安装看看开屏广告是否消失了
image.png (38.82 KB, 下载次数: 0)
下载附件
修改后黑屏
2023-6-26 21:37 上传
修改后发现打开app会黑屏,app没有任何反应。
这时候我想到了是不是有签名校验的原因,所以直接用了mt的去除签名校验的功能。
image.png (108.99 KB, 下载次数: 0)
下载附件
mt功能
2023-6-26 21:39 上传
但是发现去除签名校验后依旧黑屏,然后我就试了试先去除签名校验,之后在修改app,发现成功了。
如果有大佬知道为啥修改后去除签名校验依旧无法恢复,欢迎指点指点我。
接下来继续打开软件,发现弹出非法破解弹窗
image.png (95.14 KB, 下载次数: 0)
下载附件
非法破解弹窗
2023-6-26 21:47 上传
看到这个,人都麻了,又得继续分析了。
接下来,我还是优先考虑activity的分析。
继续用mt来分析。
image.png (81.52 KB, 下载次数: 0)
下载附件
mt分析
2023-6-26 21:49 上传
然后发现,app从mainactivity跳转到了updateactivity
下面直接用mt反编译dex文件,看看mainactivity和updateactivity的逻辑
image.png (661.15 KB, 下载次数: 0)
下载附件
mainactivity分析
2023-6-26 21:52 上传
打开之后发现字符串已经被混淆了
接下来我选择用jeb继续分析,因为jeb是pc工具,比手机好操作,而且jeb的反混淆非常好用
用jeb反编译之前的两个类
image.png (330.77 KB, 下载次数: 0)
下载附件
mainactivity jeb
2023-6-26 21:58 上传
发现mainactivity里并没有找到调用updateactivity的方法
接下来打开updateactivity,发现updateactivity确实是非法破解的界面
image.png (300.3 KB, 下载次数: 0)
下载附件
updateactivity非法破解
2023-6-26 21:59 上传
看到这里,我首先想到查看一下是谁调用了updateactivity类里的e方法
image.png (39.41 KB, 下载次数: 0)
下载附件
调用e
2023-6-26 22:00 上传
结果发现在baseactivity里有调用
image.png (102.72 KB, 下载次数: 0)
下载附件
分析调用
2023-6-26 22:01 上传
从这里可以大致的分析出启动的时候都干了点什么
判断此时启动是广告activity还是主页面activity
接下来我打算把this.e();包括this.e();之后的代码全删掉
在mt中反编译dex文件,找到baseactivity类,查找oncreate方法,把之后this.e();的代码全删除
image.png (247.55 KB, 下载次数: 0)
下载附件
删除所有e代码
2023-6-26 22:07 上传
保存后安装app
image.png (225.27 KB, 下载次数: 0)
下载附件
空白主页
2023-6-26 22:09 上传
发现主页面一片空白,这时意识到,全删代码肯定不行,在jeb中继续分析
image.png (78.18 KB, 下载次数: 0)
下载附件
update调用
2023-6-26 22:10 上传
这时候发现,在e方法下边有一行UpdateActivity.l(this);方法的调用
这时候去UpdateActivit类看了一下l方法是干什么的
image.png (11.56 KB, 下载次数: 0)
下载附件
l方法
2023-6-26 22:12 上传
发现调用了a.w方法,看到这里其实我心里已经有数了,为了保险起见又进w方法看了一眼
image.png (13.83 KB, 下载次数: 0)
下载附件
启动类
2023-6-26 22:13 上传
果然没猜错,是启动Activity的方法,接下来回mt,把UpdateActivity.l(this);这行代码全注释掉
image.png (373.78 KB, 下载次数: 0)
下载附件
注释
2023-6-26 22:16 上传
直接注释,保存退出,安装app查看
image.png (122.7 KB, 下载次数: 0)
下载附件
成功破解
2023-6-26 22:17 上传
发现成功去除了广告,并且去除了破解提示
至此,练手算是比较成功了。
逆向新手,技术很菜,大佬误嘲
如有违规请联系我删除