首页
社区
课程
招聘
[分享]【实战】某视频去广告
发表于: 1天前 684

[分享]【实战】某视频去广告

1天前
684

最近朋友推荐了一个看视频的软件,我寻思看看广告就看看广告吧,但是这个软件现在让我觉得它是个假的,因为广告点进去就跳转到别的app了。行吧,那我们来一探究竟吧。
原生无壳,非常好。
图片描述

图片描述
我只是想看个视频而已。而且这里的广告都好友(流)好(忙),
既然这样的话,我们就从这里的布局入手吧。

ok,紧接着我们定位页面位置和控件。
图片描述

图片描述

混淆一般,从这个Activity的ViewBinding得知,具体的布局文件是:activity_fareach_info,且找到了具体位置,
图片描述
简单分析了一下布局层级之后,那么这个核心部分应该就是在:

其实这里就需要分出一个开发上的知识了,就是自定义View,这个控件大概率是一个自定义ViewGroup,从他的一些属性来看的话,能看出来有很多自定义属性,这里我对它没有太大兴趣哈哈,就先略过。

代码很多,我们先不着急看,先来看看方法列表有没有比较敏感的字段
图片描述
看到有Ad相关的,还有Visibilty,这不就是控制显示隐藏的吗?
但是我英文不好,还是去翻译了一下。Reward是奖励的意思,那就是说 获取广告奖励的显示状态。
好这里调用是父类的同方法,继续往里看。

那么有get肯定有set,这里我们能看到它获取的是getExoPlayAdRewardLayout,
交叉引用发现只有这一个地方用了。
图片描述
但是代码是这么写的:

为了代码的客观性,我给这个c重新起个名字,那就叫exoPlayAdRewardLayout吧。
图片描述

前三个构造方法先pass,因为那里是初始化布局的地方。
最后一个也pass,因为我们刚才看的是最后一个方法,那么就剩下和这个b方法了,而且参数是int类型,View的setVisibility也是要的int类型的参数,这个方法可疑性极高,点进去看看。

果然,就是这里了。然后我还是给他改个名字,方便后面追代码好追。就成为了这样。

继续找交叉引用发现了只有BaseView中引用到了

继续找交叉引用,然后发现只有子类调用了

图片描述

这里的交叉引用有点多,也混淆了,那么这里我们就来打印个堆栈信息看看。这里我用的是算法助手

然后往上追到了z1方法

这里代码整体看一下,假设走到y8.a.b就是显示广告控件的话,那么上面的if就是成立条件,且代码中entry.getInterval_time是什么Interval_time不就是间隔时间吗?说英语不好能学代码不假,但是成本也确实高啊。英语好的话这里就少读很多。那么这里就是三个条件必须同时成立才会看广告。那我随便搞一个条件就行了。

这里我就看o1.a.Q()不顺眼,且这个返回值类型还是int类型的,我就hook一下它好了。这里我贴一下xp的hook代码片段,但是这里我为了省事我就用算法助手了。


传播安全知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 7
打赏
分享
最新回复 (4)
雪    币: 3001
活跃值: (2540)
能力值: ( LV6,RANK:80 )
在线值:
发帖
回帖
粉丝
2
学习
1天前
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
3
学习一下
1天前
0
雪    币: 5558
活跃值: (3023)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
看视频的软件值得研究一下
1天前
0
雪    币: 158
活跃值: (4896)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
学习 !!!
22小时前
0
游客
登录 | 注册 方可回帖
返回