zoukankan      html  css  js  c++  java
  • 秋式广告杀手:广告拦截原理与杀手组织

    上一贴很火热:秋天新作品:秋式广告杀手,每年帮大伙多活7-8天!,大伙表示整套的意愿很强烈,当然对软件的原理兴趣更有倾向性。

    本节介绍以下方面内容:

    1:软件的广告拦截原理。

    2:新版本V1.1的介绍。 

    3:广告杀手组织介绍。

    4:下节预告。


    一:软件的广告拦截原理 

    上一节,简单的介绍了一下原理,不过大伙还是多少有些迷惑,也有些人不看文章,猜一些有的没的,像优酷首页打开慢、QQ突然掉线,都和软件扯上关系了,所以,这里细细的讲一下拦截原理:

    1:秋式广告杀手软件的组能及通讯:

    软件客户端:负责和服务器及广告网站通讯。
    服务器端:负责客户端通讯(不与第三方广告网站通讯)。

    2:软件运行及拦截流程及原理

    你从秋式广告杀手官网下载完软件,并解压后正常开启运行:

    1:软件会监听81端口(因为80端口被占用是不能监听处理的)

    2:软件会提示并写入Hosts文件,大体内容如下:

    66.85.175.210 www.baidu.com -- 指向服务器IP
    127.0.0.1 www.b.com --映射域名

    关于Hosts设置到服务器不能设置为127.0.0.1的原因及原理:

    如果设置在本机,那么你就得强占用户的IIS,创建默认网站,来实现拦截;

    如果网站已存在,你还得修改相关参数,总不能直接就删除站点再创建吧;

    如果用户没装IIS,还得安装(考虑到不同系统,这样的想法明显是不可取的);

    所以设置回本机,光这条就取消了,当然还有其它很多理由不应该装在本机。

    Hosts必须指向服务器,也有重重问题需要分析与思考:

    用服务器负责所有的请求转发(实现拦截功能)?

    有以下几个原因会取消这种想法:

    1:服务器压力重,还没钱买好的服务器。

    2:如果由服务器转发,那么只要服务器被屏蔽方屏蔽访问,那么也就失效了。

    所以,请求转发,必须回到客户端,所以客户端必须内置代理服务器。

    关于代理服务器的实现,具体可以看我文章Http代理工具实现的开源文章。 

    服务器只负责端口跳转,光是端口跳转,还会有问题,思考与对策划需要继续:

    1:单纯端口跳转(到客户端后,还是解析到服务器,这不来来回回死循环了)

    这在开发时是没想到的(因为开发时,服务器和监听都是在本机,所以跳转端口后就转代理服务器去了),以为成功了,上传到服务器才发觉悲剧的一点。

    2:81端口的监听,只能处理解析到127.0.0.1本机的请求,所以我想出了个域名映射,所以你看到hosts是双对成型的。

    跳转到映射域名后,映射域名是指向127.0.0.1的,加上端口是81,就会进入内置的代理服务器,实现中转请求了。

    实现拦截原理,就是这么个过程了,至于如何屏蔽,暂时保下密,免的提前被发现反破解了!


    二:秋式广告杀手V1.1版本介绍

    虽然离上个版本只过了4天,但这个版本改进了不少功能:

    1:服务器是否连通的检测机制改变:

    原来是软件启动时,采用System.Net.NetworkInformation.Ping 来测试服务器是否连通。

    上面原理说了,需要服务器进行跳转,所以必须保证用户能连上服务器才能正常使用。

    通常用cmd执行ping时,是连发4条,而用Ping类时,只发送了一次,导致首次超时,未被识别为成功,因此软件没处于开启状态,导致一些未知的人为问题。

    为此,本次还是回改服务器网站情况,通过请求服务器网站,返回“ok”标识来确认连通。 

    2:软件更注重细节:

    1:首次使用时,默认显示界面,而不缩小,并提示用户可能发生的行为。

    2:避免用户从解压文件里直接运行。

    3:增加配置文件变更时,浏览器未生效时需要重启浏览器的提示。

    4:取消百度的硬性选择问题,允许取消。

    3:增加update.exe升级程序:

    V1.0并未有升级功能,而这个版本,新增加了升级程序用于升级功能。

    为了这个升级程序,体积小,不产生额外的dll,我费时超过8小时,硬是从200K大小的ICSharpCode.SharpZipLib.Zip中,提取出单纯解压的代码,由于关联性太多,压到52K,尽力了,同时修正了语言时区错误解压中文乱码的问题。

    这个update.exe程序,没混淆没加密,有兴起可以去反编绎一下。

    4:增加以下视频的屏蔽:

    乐视、56、PPS、腾讯视频、迅雷看看等。

    如下图:

    考虑到视频网站太多,自己又精力有限,不可能维护所有的网站。

    因此,我思考良久,如何更让更多的网友参与分享,所以有了以下界面:

    5:增加更多分享规则:

    在主界面视频栏里点“更多”,如来界面,如下图:

    你可以自定义添加规则,如果需要(勾选)分享,需要(为了避免乱发广告,需要申请一个Code,才能提交)

    6:新版本下载地址:http://www.cyqdata.com/download/article-detail-54271


    三:广告杀手组织

    个人能维护的规则有限,需要大伙共同参与, 弄了个广告杀手组织QQ群:227664757,欢迎有心人加入组织,群只有上限100人,潜水者勿进,定时清理;

    进群可获取分享Code,用户提交规则分享;

    同时会私下交流切磋如何屏蔽广告及视频, 让规则更丰富些。

    四:下节预告

    由于拦截原理,本节已介绍完毕,下一节可能会介绍软件的实现细节方面内容。

    附加的51cto博客大赛投票:( 2012年11月27日结束,天天都可以投)

     

    感谢路过的朋友也顺手扔一票:http://blog.51cto.com/contest2012/2127378  

     


  • 相关阅读:
    人不能乱说
    信息不可透露

    一波韭菜又一波韭菜,割了一波又一波
    截取等宽中英文字符串(比如截取2个,中午截取两个字,英文截取四个单词)
    nhibernate 配置nvarchar(max)
    angularjs 自带的过滤器
    检测是否是IE浏览器
    WebClient 使用
    从流获取缩略图
  • 原文地址:https://www.cnblogs.com/cyq1162/p/2773468.html
Copyright © 2011-2022 走看看