准确说是电视机检测到软件更新,不升级就不能看,之前断掉 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 流量修改),也请不吝赐教。
1
JJaicmkmy 2017-05-02 23:50:58 +08:00 1
|
2
bibizhang 2017-05-02 23:54:04 +08:00
撒泡尿回来就没了
|
3
1465726777 OP @JJaicmkmy 谢谢。 我仔细研究下,一直在用 apache。
其实我还打算做一些更复杂的,百度搜索结果页面最上方的广告标签是动态的,我一直想屏蔽掉。不知道 nginx 自身实现不了的话有插件可以实现吗? 还想问大家这个: 在海外可以修改 DNS 可以听到完整的网易云音乐,我觉得中间的 http 流量肯定被修改了,不知道有现成的软件可以用吗? |
4
1465726777 OP @bibizhang 主要还是为了学习 况且开机广告这东西也挺不爽的 要是机顶盒广告也就算了
|
5
JJaicmkmy 2017-05-03 00:06:31 +08:00
@1465726777
修改 DNS 听百度云音乐,应该是解析到了境内的反向代理,具体可以搜索 SNIProxy。 百度的搜索是 HTTPS 的,只能用自签名证书,应该可以通过 ngx_http_substitutions_filter_module 这个模组来修改。 |
6
sholmesian 2017-05-03 09:11:10 +08:00 via iPhone
|
7
1465726777 OP 今天搞成了。
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> 可能还有其它域名有广告,把它劫持到本地,然后按照上面的配置修改一份即可。 |