记一次,某小电影软件广告去除,并解锁一些限制。

查看 119|回复 9
作者:h88782481   
最近正在学安卓开发,但是经常搞机的我对逆向也非常感兴趣,所以就双管齐下了。
正好正己大佬发布了一系列课程,我最近学完了,手很痒痒,手头刚好有一款软件,我就拿来练手了,废话不多说,下面开始实战。
首先打开软件


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 上传

发现成功去除了广告,并且去除了破解提示
至此,练手算是比较成功了。
逆向新手,技术很菜,大佬误嘲
如有违规请联系我删除

下载次数, 下载附件

h88782481
OP
  

签名校验问题其实很简单,你修改后的app再去除签名校验,根据mt去签的原理是会生成一个签名数据去对抗,但你这时候的签名已经不是原始的了,所以相当于没绕过签名校验。而在修改前去除签名校验,则相当于原签名数据在左右互搏。所以要保持一个良好的修改习惯,修改前先去除一下签名校验
vLove0   

被你打码的图片是app界面还是你的手机屏幕呀,我看第一行好像都是图标
palapha   


侃遍天下无二人 发表于 2023-6-26 22:55
被你打码的图片是app界面还是你的手机屏幕呀,我看第一行好像都是图标

没有手机屏幕,全是app的界面
一场荒唐半生梦   

签名校验问题,可以这样理解:首先MT的一键去签名可以理解为先读取APP的签名,然后通过动态代{过}{滤}理的方式修改APP中获取签名的方法,返回读取到的APP的签名。
如果是修改dex,并替换到原APP时,开启了自动签名,那么此时APP的签名就会被修改,再用一键去签名,此时读到的签名就是MT自动签名的值,并不是原APP的签名;
如果是修改dex,并替换到原APP时,没有开启自动签名,那么此时APP的签名还是它自身的,再用一键去签名,读到的签名就是原APP的签名;
当然,也可以在修改之前先使用一键去签名。
另外,这软件,
Alice27   

感谢分享
PDDvs55K   

我有一个朋友想要看这个APP
DHYB   

学习了 感谢分享
DHYB   

同是天涯养猫人
palapha   

工程发现。。。。。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 立即注册

返回顶部