上一贴很火热:秋天新作品:秋式广告杀手,每年帮大伙多活7-8天!,大伙表示整套的意愿很强烈,当然对软件的原理兴趣更有倾向性。
本节介绍以下方面内容:
1:软件的广告拦截原理。
2:新版本V1.1的介绍。
3:广告杀手组织介绍。
4:下节预告。
一:软件的广告拦截原理
1:秋式广告杀手软件的组能及通讯:
2:软件运行及拦截流程及原理
你从秋式广告杀手官网下载完软件,并解压后正常开启运行:
1:软件会监听81端口(因为80端口被占用是不能监听处理的)
2:软件会提示并写入Hosts文件,大体内容如下:
关于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:增加以下视频的屏蔽:
如下图:
考虑到视频网站太多,自己又精力有限,不可能维护所有的网站。
因此,我思考良久,如何更让更多的网友参与分享,所以有了以下界面:
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