Android应用去广告方法盘点

应用广告方式

1、小平台应用

由于其没有自己的广告系统,它们一般会嵌入第三方广告平台的SDK来显示广告,所以只需要分析第三方平台的SDK就行。


2、大平台应用

由于其拥有自己的广告平台,需要对其单独进行分析。


去广告的场景 

1、游戏

2、视频

3、其他


 广告类应用的特点 

对于一些包含广告的应用,它首先会进行广告的拉取,如果拉取到广告就会正常显示,否则就会跳过广告,所以我们既可以从网络请求着手,也可以从网络请求代码着手。


 去广告的方法 

对于有root权限的手机

1. 修改设备的hosts文件,对广告网络请求进行拦截替换

把生成的过滤规则添加到设备的hosts文件中,Android中的hosts文件存放的目录是在根目录下的/etc/hosts


典型软件代表:

AdWay

https://f-droid.org/en/packages/org.adaway/

https://github.com/AdAway/AdAway


2. 针对广告 API 进行拦截

需要使用第三方hook框架来对广告API进行HOOK拦截,例如Xposed


典型代表:

MinMinGuard

https://github.com/chiehmin/MinMinGuard


3. 使用iptable拦截网络请求

通过iptables命令设置filter表,针对来源是广告的做REJECT或是DROP操作。


典型代表:

droidwall

https://github.com/CfYz/droidwall


对于无root权限的手机

1. 使用VPNService功能进行网络请求拦截,目前很多去广告应用都是这么干的。


典型代表:

https://github.com/M66B/NetGuard


2. apk包反编译,修改广告请求相关代码,然后重打包,可以更改替换广告请求地址,也可以修改网络请求代码逻辑,总之使其请求结果失败就行。


3. 设置电脑作为代理,修改电脑的hosts文件


4. 修改路由器过滤规则,添加地址屏蔽规则



 总结 

去广告的方法基本可以总结为两类:

一、对广告的网络请求进行拦截

网络拦截主要有三类:

  1. 修改host文件进行拦截

  2. 使用iptable拦截

  3. 使用代理进行拦截

使用代理有三种方式:

  • 使用Android自带的VPNService

  • 修改路由器过滤规则

  • 设置电脑作为代理,修改电脑的hosts文件


二、对广告API代码调用进行拦截

广告API拦截分为静态方式和动态方式:

    1. 静态方式:反编译APK源码,对广告相关代码进行静态的修改,然后重新打包

    2. 动态方式:使用HOOK框架,对广告相关API的调用进行拦截


最后需要补充的是网络请求拦截的方式不仅可以进行广告过滤,而且可以进行网络管理、流量管理、网络安全控制、联网控制、WiFi安全通道等很多方面的实现,既然将手机的整个网络流量给控制了,具体可以干什么,大家也可想而知。


 参考文章 

http://t.cn/RECeFAt

http://blog.csdn.net/itleaks/article/details/39692391

https://www.jianshu.com/p/01f9f9954fc8


欢迎关注我的公众号:DroidMind

精品内容,独家发布

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值