iOS屏蔽开屏广告

国内的互联网公司真的是脸都不要了,搞出个摇一摇开屏广告,差点中招,想回退到老版本又太麻烦,实在忍不了了,最后决定抓包,然后用Shadowrocket的规则屏蔽掉这些恶心的广告

此方法的原理是使用Shadowrocket的REJECT规则,对APP的请求的广告域名进行拦截并返回404状态码,APP下载不到广告,自然也就不会显示了。

提示:此方法需要

  • 一个美区/英区的Apple ID以及相应支付方式,因为好用的代理软件在国区已经全被下架了
  • 一个可靠的机场/VPS,因为需要一直开启VPN
  • 重新安装需要屏蔽广告的APP

导入规则

这里我以Shadowrocket为例,Quantumult X、Surge等代理软件也都可以使用,配置方法大同小异。

首先将Shadowrocket的全局路由设置为配置
全局路由设置.webp

然后到配置中,添加一份规则,规则在GitHub上很多,我用的是下面这个规则集中的黑名单+去广告

安装抓包APP

虽然上面导入的规则已经能够屏蔽掉部分APP的开屏广告了,但是有一些APP的广告下载链接经常变化,规则不一定包含,就需要抓包这些链接,然后加入到Shadowrocket的规则里。

抓包APP国区推荐比较多的是Stream,但是英区并没有上架,这里我用的是Storm Sniffer

添加VPN

首次启动时先打开上面的开启抓包开关,然后会提示添加VPN,允许并输入手机的密码
添加VPN.webp

开启HTTPS支持

下一步是开启HTTPS支持,需要下载并启用证书

下载证书

下载证书.webp

安装证书

下载完成后打开设置,会多出一个已下载描述文件,点击右上角的安装,然后输入密码,然后会弹出是否信任证书的警告,继续点击右上角的安装即可
安装描述文件.webp

启用证书

打开设置-通用-关于本机,拉到最下面,有一个证书信任设置,开启Strom Sniffer的证书,证书和APP名字差了一丢丢,会弹出警告,点击继续即可(抓完包建议回来关掉它,卸磨杀驴🐶🐶)。然后回到Storm Sniffer界面,如果显示的像最右边的图片一样,说明HTTPS支持已经开启成功。
启用证书.webp

删除证书

删除证书

完整版的卸磨杀驴,在设置-通用-VPN与设备管理中找到Strom Sniffer,然后点击移除描述文件即可
卸磨杀驴.webp

抓包

抓包之前需要先卸载并重装要抓包的APP,因为广告文件已经在APP缓存里了,而APP里面所谓的清除缓存功能并不会清除广告的缓存。在启动的时候APP会直接调用已经缓存下来的广告,而不会向广告下载服务器发出请求,不发出请求我们就抓不到广告服务器的域名,自然也不能屏蔽它们了。

首先打开Storm Sniffer的开启抓包开关,然后启动要抓包的APP,第一次启动可能不会弹出广告,多清理后台试几次,广告加载出来后就可以回到Storm Sniffer,关掉开启抓包开关,然后在列表中寻找长得像广告的域名,图片形式的广告比较好找,Storm Sniffer会显示图片预览,视频形式的就得慢慢找了。找到后在Storm Sniffer中点击请求的HOST,选择复制Value就可以复制域名了
抓包.webp

添加规则

打开Shadowrocket的配置,打开刚才导入的规则,点击右上角的加号添加新的规则,类型一般不用改,策略设置为REJECT,然后粘贴刚才抓到的域名并保存。
添加自定义规则.webp

然后开启Shadowrocket的代理,再次重装刚才抓完的APP,清除掉广告的缓存,就可以正常使用了。

规则类型

规则类型

一些常用规则类型说明

  • DOMAIN:域名匹配
  • DOMAIN-SUFFIX:域名后缀匹配
  • DOMAIN-KEYWORD:域名关键字匹配
  • IP-CIDR:IP 段匹配
  • GEOIP:GEOIP 数据库(国家代码)匹配
  • DST-PORT:目标端口匹配
  • FINAL:剩余网站

碎碎念

国内的APP为了投放广告可谓费尽心机,APP的广告域名可能会更换,虽然频率不高,但是每次更换我们都需要重装APP并重新抓包,比较麻烦。不过一旦屏蔽完成,就再也不用忍受每次5秒的开屏广告,APP启动都是秒开,而且也不用担心开屏广告跳出来某些晦气玩意儿的大脸,还是很值的。另外附上微博国际版的域名屏蔽列表

微博国际版域名屏蔽列表

  • sdk.e.qq.com
  • mazu.m.qq.com
  • adimg.uve.weibo.com
  • tqt.weibo.cn
  • miaozhen.com
  • sdkapp.uve.weibo.com
  • sdkmonitor.biz.weibo.com
  • h.trace.qq.com
  • cgi.connect.qq.com
  • gdtimg.com
  • umengcloud.com
  • adstrategy.biz.weibo.com
  • 切记不要在关闭代理的情况下启动这个APP!不然广告又会被缓存下来,就得再重装一次了。
  • 建议禁止这些APP的后台刷新,iOS的消息推送机制不需要它们后台刷新,禁止也不会耽误消息。毕竟代理APP不一定稳定,万一代理掉了这些APP就可能在后台缓存广告了