首页
论坛
课程
招聘
[原创]乐安全内嵌广告屏蔽原理
2013-3-25 15:24 12396

[原创]乐安全内嵌广告屏蔽原理

2013-3-25 15:24
12396
一、原理
分析完了手机毒霸去广告功能的原理,接下来我们来看看“乐安全”是如何去内嵌广告的。对手机毒霸去广告功能感兴趣的同学可以看一下我们之前发的三篇技术文章:
手机毒霸去广告功能分析一:总体分析
手机毒霸去广告功能分析二:广告View的识别
手机毒霸去广告功能分析三:java代码(dex)注入

好,言归正传。乐安全的去内嵌广告功能非常强大(如图)。

整个去内嵌广告功能就一个开关,“一键拦截全部应用内嵌广告”。要使用这个功能必须首先获得root权限。一开始笔者以为乐安全和手机毒霸的原理差不多,也是通过进程注入广告应用进程,然后将广告View隐藏来实现的。可是当笔者将广告应用进程的/proc/xxxx/maps打开一看,发现乐安全并没有注入它。于是对乐安全进行了逆向工程分析,发现乐安全原来是这么实现的。
  首先,在介绍实现原理之前,你必须要知道/etc/hosts这个文件。这个文件里存放的就是本地域名解析规则,也就是说如果本机要访问某个域名,首先会到这个文件里查找,有没有这个域名对应的IP地址,如果有直接就访问这个IP地址了,如果没有才会去向DNS服务器发出域名解析请求。
  其次,绝大多数广告的实现,都是后台从网络服务器上下载广告资源,然后再在本机显示。这个下载过程就必须要涉及到域名解析过程。如果在域名解析阶段,返回错误的IP地址,那么广告资源也就无法下载了。这样也就达到了屏蔽广告的目的。
  最后,乐安全就是按照这一原理,修改了系统的/etc/hosts文件。让广告域名都指向本机IP地址。这里列出这个文件的片段,让大家有一个更加直观的感受:

127.0.0.1 localhost
::1 localhost

127.0.0.1 banners.vivilatina.com
127.0.0.1 208.185.87.8.liveadvert.com
127.0.0.1 counter.bizland.com
127.0.0.1 t2.leadlander.com
127.0.0.1 line07.metriweb.be
127.0.0.1 adpop.theglobe.net
127.0.0.1 ad.bharatstudent.com


二、优劣势
这种实现方式有其优势:
1.  开发和实现成本低,只需要维护一个广告服务器的黑名单即可
2.  用户操作简单,就一个总开关,打开之后,整个系统都没有广告了(前提是黑名单足够全)。
3.  对原系统的影响小:内存占用少,性能损失小
也有其劣势:
1.  有些服务器既提供广告服务,又提供正常的其他服务,比如web服务。那么如果这个服务器的域名被加入黑名单,那么用户要访问这个服务器上的网站也就不可能了。如果这个服务器的域名没有被加入黑名单,那么来自这个服务器的广告又屏蔽不了。
2.  无法屏蔽非实时网络抓取的广告。有的广告插件显示的广告并不是实时从网络上抓取的,而是内嵌在应用内部,或者是之前从网络上抓取下来放到本地的(假设之前乐安全屏蔽广告功能尚未开启)。那么乐安全就无法屏蔽这类广告。

三、与手机毒霸比较
下面将手机毒霸和乐安全的广告屏蔽功能做一比较


四、最后贴一下乐安全的hosts文件
hosts.zip
解压这个文件,然后将hosts,替换手机上的/etc/hosts(需要root权限)。这样不用装乐安全就能屏蔽广告了。纯绿色版啊

@安卓安全小分队
http://weibo.com/androidsecurity

第五届安全开发者峰会(SDC 2021)议题征集正式开启!

上传的附件:
收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 298
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tedrick 活跃值 2013-3-25 15:45
2
0
之前注意到这货在system下写的东西,应该是2个库文件,卸载后还残留。(凭之前帮同事k860刷机记忆)

乐安全有通用版~
safe.lenovo.com
雪    币: 298
活跃值: 活跃值 (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tedrick 活跃值 2013-3-25 15:56
3
0
最新版就是apk/assets/hosts_tmp.zip~~~

另外卸载后bin里也有残留~~
雪    币: 54
活跃值: 活跃值 (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
涅槃小鸟 活跃值 2013-3-25 17:31
4
0
这个不错,有库就好
雪    币: 114
活跃值: 活跃值 (15)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
figofuture 活跃值 2013-3-27 23:01
5
0
其实楼主还可以加上对adblockplus on android的分析与对比,这样更全面些。
雪    币: 8671
活跃值: 活跃值 (665)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
cvcvxk 活跃值 10 2013-3-28 09:35
6
0
毒霸去广告有个严重的问题,就是广告的流量已经产生,流量费用已经咔嚓出来了~
尼玛,还不如显示个广告给我好了~~我都把钱交了,你丫不给我显示有毛用啊~~
雪    币: 114
活跃值: 活跃值 (15)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
figofuture 活跃值 2013-3-28 09:55
7
0
其实是运营商把钱赚去了,广告平台和靠广告赚钱的开发者并没有赚到钱,因为用户没有点击,没有cpc,所以怀疑毒霸这方法是不是和运营商勾结之后的搞出来的,邪恶啊!
雪    币: 6817
活跃值: 活跃值 (153)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
聖blue 活跃值 2017-2-16 20:46
8
0
支持下!!!!!
游客
登录 | 注册 方可回帖
返回