来源于吾爱破解论坛正己大佬的《安卓逆向这档事》四、恭喜你获得广告&弹窗静默卡,根据大佬的技术贴,个人的学习过程
目前真的把这件事当做是一种打卡了,希望能够坚持的更久一点
资源链接
[ol]
工具
课程任务
实现过程
前情提要
[/ol]
本次完成的是正己大佬发布的教程 Dome 的关卡三 去广告&布局优化&xml&弹窗定位

简要了解
广告按照位置不同,可以划分为开屏广告、横幅广告、弹窗广告,本次会使用到新的一种定位方法 Activity 定位

实验过程
定位方法之 Activity
这个方法在这里就略了,加入下面去开屏广告的里面
开屏广告
当前的开屏广告有一个特点,那就是等待三秒就自动跳过,思路一般是把3秒改成0就可以了

Activity 定位
activity 定位需要用到一个工具,MT/NP 都自带了这个功能

如下图,大框是 MT 管理器的 Activity 记录表,蓝色字符则是当前应用和当前的 Activity

我们记录到,这里有两个跳转,所以下面的 com.zj.wuaipojie.ui.AdActivity 就是开屏广告的活动

来都 MT 管理器对 dex 文件用 dex++编辑器打开,搜索 com. zj. wuaipojie. ui. AdActivity


进入这个文件,发现找不到刚刚的活动名,不急,右上角打开三个点,转成 java


这时候,我们就会看到上面引入了一个库,最后有个 3000,在代码中一般都用毫秒,所以这里的3000ms 是3s,当然不能在这里修改,需要返回到 smali 文件下修改

在这里,我们看到了 v2 寄存器中存入了 0xbb8 这个十六进制的数值,那么他是多少呢?

我们可以看到,0xbb8 转换成十进制是 3000

所以我们把 0xbb8 修改为 0x0 就可以了

注意啊,这个时候转换成 java 的时候,需要打开左上角的三杠,把原来转换的 java 的删了,因为有缓存

当我们重新安装打开以后,就会发现,开屏广告没了,直接跳转了

弹窗广告
方法一:文字定位法
正如,上个图片,一号弹窗已就位 就是一种弹窗广告,回到 MT 管理器,dex 文件使用 dex++编辑器,搜索 一号广告弹窗,转换成 java 模式,会找到一个 show 显示,那么在 smali 代码中,注释掉这段 show 就可以了


当我们搜索 show 的时候,会发现有两个

分别对应的是第一个弹窗广告和第二个弹窗广告,对两个 show 分别注释掉以后


对两个 show 分别注释掉以后,再次安装打开软件,就发现没有弹窗了

方法二:算法助手跳过弹窗
上面的方法是通过字符定位到代码位置,再注释掉。这个方法是通过算法助手来实现
步骤流程可以观看这个视频,在这里就不多说了 【工具】算法助手的激活与使用_哔哩哔哩_bilibili
方法三:算法助手+堆定位法
在算法助手中启动教程 Dome

走到这里,返回算法助手

点击日志


在这里我们会看到三条信息, 分别是算法助手注入代码成功提示,和两条弹窗提示

点开信息,我们就可以看到运行逻辑,以及调用的堆栈,当然前面的几条实际上是 LSP 以及算法助手的

对对应的栈长按,复制类名,再到 MT 管理器中 dex 文件搜索类名,找 show,注释掉就可以了

横幅广告
横幅广告一般都是图片,文字定位的方法多半不奏效,所以使用界面分析 APP 获取其 IDhex


使用 xml 搜索,找都位置以后,将宽高设置为0即可

完成去广告

相关资料
[ol]
[/ol]
其他文章
[ol]
[/ol]
其他视频资料
[ol]
[/ol]