我们用服务每一个客户

Our intention to service each customer

诚实 守信 专业 专注

教你怎么屏蔽掉在移动端的宽带运营商的流量劫

分类:seo   来源:万盛达网络   发布人:admin   发布于2019-09-21 16:03    查看:    

  自从住进了租房以来,在使用租房的宽带的时候总有个问题,已经几个月了,今天我实在无法忍受这些广告了。决定要整治这些劫持广告。

  一开始想到用socks5代理,需要自己租服务器,而且很麻烦,而且我研究了下劫持的页面,并且从网上也发现了一些其它用户遇到的问题。

     我主要遇到下面几个类型的劫持:

  类型一:输入百度的时候,后面会自动被加上尾巴然后进行跳转。尤其是输入www.hao123.com的时候,会跳转到http://www.hao123.com/?tn=94150859_hao_pg

  但是如果你使用https://www.baidu.com是没法跳转的,建议大家修改自己的chrome的浏览器的默认搜索引擎,加上https,还好百度开启了https,这时候我深感推广https的重要性。没有https的话,这些运营商想怎么改你的网页就怎么修改。

  类型二:就是常见的右下角广告了,这个还好解决,装上adblock plus就可以一劳永逸了。

  但是真正让我苦恼的是下面的类型三:

  类型三:手机访问网页的时候,运营商会根据你的UA来植入广告,这个广告是和pc上浏览器的是不同的。

  这个广告是类似于我们玩手游的时候,在网页中间插入一个广告悬浮窗达到目的。。。这移动端的广告还真是与时俱进啊

  下面自己感受一下这个广告,我有强迫症的简直无法忍受。

  

  点开右侧那个悬浮广告,就会出现下面这个了:

  

  再看一下下面的声明,多么无耻,没有下限啊。。。

  

  还无毒,你知不知道你造成了骚扰啊。

  这个玩意的毒害真的太大了。

  主要是使用了WebView的app,app在用webview加载网页的时候,此广告都会识别浏览器中携带的ua信息,自动植入。。。

  我看的今日头条app在我租房的wifi下基本无法使用,今日头条很多h5的页面,被强行修改了页面内容。无法浏览。

  同时查看微信公众号的东西,中间同样出现悬浮窗,我不理解为什么微信不尽早使用https。

  后面我开始想办法解决这个毒瘤了。

  既然你是通过ua识别的,首先我通过chrome的device mode,设置为nexus7设备访问,刷新几次页面之后,如愿所偿的出现了广告。

  于是我修改ua(chrome在device 模式下的ua是可以修改的),将ua修改为f u c k。

  果然没有移动广告了,但是右下角广告就出现了。。。

  好吧我不修改ua,在ua后面加入足够多的乱码。经过一番测试,加到500多个没用字符之后,不再出现广告了。

  个人理解为:这个劫持商要劫持那么多用户,肯定对http header的长度有所限制,超出这个限制之后,它就不会再劫持了,否则他自己的服务器压力也很大的。

  到此,这个方案已经有效了,接下来是怎么运用到android平台上。

  这时候需要用到一个android上的神器框架xposed。不了解的读者可以自行百度一下。

  思路:使用xposed框架hook webView控件的loadUrl,在loadUrl之前将webView的ua修改为足够长。

  我的xposed代码很简单,几行就解决了这个劫持问题了。

  public static final String ua="Mozilla/5.0 (Linux; Android 4.3; Nexus 7 Build/JSS15Q) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2307.2 Safari/537.360123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199";

  @Override

  public void handleLoadPackage(LoadPackageParam lpparam) throws Throwable {

  // TODO Auto-generated method stub

  XposedHelpers.findAndHookMethod("android.webkit.WebView", lpparam.classLoader, "loadUrl", String.class,new XC_MethodHook() {

  @Override

  protected void beforeHookedMethod(MethodHookParam param)

  throws Throwable {

  // TODO Auto-generated method stub

  Object thisObj=param.thisObject;

  if(thisObj instanceof WebView){

  ((WebView) thisObj).getSettings().setUserAgentString(ua);

  }

  }

  });

  }

  上面的ua,是找到一个移动端适用的ua,然后后面加上500多个没用字符。移动端ua是一定要的,我发现如果我没用移动端ua的话,有些app是会拒绝加载的,因为他们需要ua里面的Android这个关键字。

移动3 流量劫持3

Copyright © 2009-2017 深圳万盛达网络科技有限公司(www.szwsdwl.com) All Rights Reserved.
备案号:粤ICP备17134668号
  • QQ咨询

  • 在线咨询
  • 售前咨询
  • 售前咨询
  • 投诉建议
  • 电话咨询

  • 18244975607
  • 18576678331
  • 18244976011
分享按钮