Surge 使用实战:去广告

本文来自 Surge 使用手册|如何定制自己的规则配置 专题

接上一篇 Surge 使用手册:Rewrite 和 MitM

直接开始,先来个最简单

Surge 「首页」将「抓取流量」打开,「最近请求」存放的记录有限,我们需要完整的请求记录,接着去打开一个带广告的应用。

接着回到 Surge (此时关闭广告应用和停止 Surge)然后在「分析」中进入「已保存的抓取数据」

可以看到已经保存了刚才的记录,选中进去看看

广告的英文缩写一般为「AD」,如果请求记录太多可以在顶部的「搜索 URL」中填写「ad」进行搜索,示例中的应用很好看一眼看出广告域名是哪个,当然也不能武断的只要含有「ad」关键字就是广告域名对吧,那先选中试试

点击右上角菜单按钮后选中「增加代理规则」

之前的文章说了对于完整的域名应该选「DOMAIN」接着策略选择「REJECT」,最后选「Add Rule」保存完成,再次开启带广告应用看看是不是应用没有了?

好了,现在小结一下刚才都干了什么:

  • 首先,需要对请求记录进行分析广告是怎么来的——所以开启「抓取流量」
  • 然后,打开带广告的应用刷出广告然后关闭。
  • 再然后,回到 Surge 并不启用(截断后续请求记录免得无关内容被记录)然后查看已保存的数据分析
  • 最后,将分析到的广告请求加入规则拒绝其请求

那么如何分析出广告呢?

首先,先看和应用自身相关的广告域名和广告商域名,比如 xxx.com 域名的应用一般使用 ad.xxx.com 或者 ads.xxx.com,而广告商域名需要具体搜索比如 Google 的广告域名 doubleclick.net,这方面其实也很容易,你想一般是xxx.com 域名的应用突然出现了一些奇奇怪怪的域名有的甚至还带有「ad」关键字那大多是广告,将其 Google 一般都能确定是广告商了。

其次,有些广告藏得比较深,比如有个应用你发现了其广告域名是 ad.baidu.sb 但你还发现了一个广告链接是 http://www.baidu.sb/ad/1@3$5%6&这也是当下常见的,想想就明白 ad.baidu.sb 可以阻止但是要把 www.baidu.sb 给阻止了岂不是影响正常使用了?这时候就需要用到「Rewrite」功能

最后,现在很多应用开始使用 HTTPS 加密了,这时候往往你是看不到隐藏在 URL 下的广告,如上示例 http://www.baidu.sb/ad/1@3$5%6& 如果使用了 HTTPS 你就只能看到 https://www.baidu.sb/ 这样的请求,这时你应该想到了可以用「MitM」,其实就这么简单。

下面再来看一个例子

和之前一样,开启「抓取流量」然后打开带广告应用,现在记一下广告图片长什么样的

在「已保存的请求中」查找广告图片,可能有人会说那用「Reweite」把这个链接 reject 掉,实际上这是不得已的下策时才这样暴力阻止广告图片,最好的方式是找到是什么让这个广告图片加载的。

使用「搜索 URL」搜索关键字,看到一条疑似的,前面说了不能因为它带着「ad」就一定是广告,且如果应用不使用「ad」关键字呢?也可能是「init」或者其他,那就需要慢慢找了。

在「响应」中选中推荐的预览

找到了刚才的图片链接,而这里的其他视频和图片可以复制到浏览器打开发现也是广告,那么可以断定这个 URL 是完全用于广告的。 包括开头那个例子也是可以通过「响应」里的预览进行分析到底是不是广告,且注意开头例子中也是使用了 HTTPS 所以需要用到「MitM」后才能进行预览分析。

这时候使用右上角菜单后「复制 URL」出来写成「Rewrite」规则:

http:\/\/ctrl\.playcvn\.com\/app\/ads - reject

另外如果你点进「增加代理规则」后会发现也可以使用规则类型「URL-REGEX」。 这里需要注意的是 Surge(iOS) 直到 3.8.0 开始「URL-REGEX」才支持「MitM」,如果你制作的规则需要兼容早期版本,那么更加建议使用「Rewrite」 ## 总结

上面是比较简单的情况,那么复杂一点的比如使用了 HTTPS 还有一些更复杂的情况应该如何处理?

首先,如果使用了 HTTPS 是需要将相关域名加入到「MitM hostname」中的,但你第一次用应用并不知道有哪些域名是需要加入的,所以可以看「最近请求」,先将相关域名加入「MitM」比如域名是 xxx.com 那么先使用 *.xxx.com (通配符表示此域名的所有前缀),待确定具体域名后再修改。

然后,删除该应用并重装,因为有些应用会在第一次启动时加载广告,而有了广告后后续启动并不会加载广告(在广告缓存失效前)所以需要重装,重装完了先不要急于打开,先关掉 Wi-Fi 和蜂窝数据,在断网的情况下启动一次,一来把那些什么是否允许通知、定位的操作先点掉以免影响操作(比如广告马上就启动了这时候本可以理解关掉应用以免后续无关资源加载干扰分析),二来可以检查一个应用的开屏广告是不是写死的(不管有没有广告加载都要倒数 3 或 5 秒如某信用卡),或者应用本身就已经携带了广告图片(如某严选)。

最后,连上网络开启 Surge 的「抓取流量」如之前所述开始分析广告并加入规则吧。

Conners Hua

这个家伙很懒,什么都没有留下。

您可能还喜欢...

1 条回应

发表评论

电子邮件地址不会被公开。 必填项已用*标注