该如何对付智能电视开机广告?

2017-05-02 23:46:19 +08:00
 1465726777

准确说是电视机检测到软件更新,不升级就不能看,之前断掉 Wi-Fi 进入软件后重连就绕过了,正好最近在 CentOS 上安装了 dnsmasq,抓包得到广告是 api.xx.com/ads/ad.xml。原本打算把它直接指向 127.0.0.1 来着,但是这个域名还负责其它信息的初始化。

现在觉得唯一的办法是把该域名指向本地,电视机请求时,无关流量原样发给真正服务器,相关流量从远程获取后在本地修改后再发回电视。

现在的问题是不知道有什么软件能做到这一点,ettercap 发动 mimt 后修改不够稳定,而 apache 没有修改 http 请求的能力,最好的是抓包工具(指的 Fiddle,Charles 这种基于 http 的) ,可以任意放行、监听、修改流量,但是电视机没法设置 http 代理,并且 CentOS 下貌似也没有基于命令行的抓包工具,python 的话也不知道具体怎样实现,网上有没有合适的开源代码可供参考

一筹莫展,请大家指教

如有好的不改动软件为前提的屏蔽广告思路(最好是基于 http 流量修改),也请不吝赐教。

6601 次点击
所在节点    CentOS
7 条回复
JJaicmkmy
2017-05-02 23:50:58 +08:00
把这个域名 DNS 劫持到本地,然后用 Nginx:
location / {
proxy_pass http://api.xx.com;
}
location /ads/ {
return 403;
}
bibizhang
2017-05-02 23:54:04 +08:00
撒泡尿回来就没了
1465726777
2017-05-03 00:01:24 +08:00
@JJaicmkmy 谢谢。 我仔细研究下,一直在用 apache。
其实我还打算做一些更复杂的,百度搜索结果页面最上方的广告标签是动态的,我一直想屏蔽掉。不知道 nginx 自身实现不了的话有插件可以实现吗?
还想问大家这个:
在海外可以修改 DNS 可以听到完整的网易云音乐,我觉得中间的 http 流量肯定被修改了,不知道有现成的软件可以用吗?
1465726777
2017-05-03 00:03:06 +08:00
@bibizhang 主要还是为了学习 况且开机广告这东西也挺不爽的 要是机顶盒广告也就算了
JJaicmkmy
2017-05-03 00:06:31 +08:00
@1465726777
修改 DNS 听百度云音乐,应该是解析到了境内的反向代理,具体可以搜索 SNIProxy。
百度的搜索是 HTTPS 的,只能用自签名证书,应该可以通过 ngx_http_substitutions_filter_module 这个模组来修改。
sholmesian
2017-05-03 09:11:10 +08:00
这个还是得从电视入手,否则即使你网络层面屏蔽干净了,电视还是会播放最初始的自带广告。 例如乐视……

https://holmesian.org/remove-letv-boot-ads
1465726777
2017-05-03 21:29:51 +08:00
今天搞成了。

apache 拦截海信电视强制升级的配置:
vi /etc/httpd/conf/httpd.conf

<VirtualHost *:80 >
ServerAdmin admin@localhost
ServerName api.hismarttv.com
DocumentRoot "/var/www/html/"
ProxyPass /upgrade/ !
ProxyPass / http://api.hismarttv.com/
#不代理 upgrade 目录,其它目录正常处理
</VirtualHost>

可能还有其它域名有广告,把它劫持到本地,然后按照上面的配置修改一份即可。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/358671

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX