标签:
11年的老文章,稳重那个插件让我爽了很久,不过后来就买会员了。代码我已经遗失了,不过无所谓,思路还是明确的,我后来在 Chrome 上测试过,一样能用。
==== 正文 ====
需求:优酷最近搞了一个广告防屏蔽,导致修改host的方法不能用了。我们需要一个新方法来绕过这个防屏蔽机制。
基本思想:新版的优酷flv player下载不到广告会罢工30秒,既然不能屏蔽广告,那我们就替换广告文件,用一个假广告文件让flv player播放。
实现:
首先抓一下包,或者用Fiddle2拦截请求,会发现优酷的广告是个flv文件,而土豆和新浪的广告是f4v文件或者swf文件(不常用的就先不关心了)。我们找到广告url的特点,就可以实现替换。
具体替换方式,有两种选择(驱动之类的bt方法我就不说了):
我们先针对以后总浏览器实验一下功能能不能实现,笔者针对的是IE。
IE的插件是个臭名昭著的东西,但是对开发者而言还是比较方便的,因为它比较“自由”,可以无所顾忌的使用C++干任何事儿。IE插件有三种:
我用的方法就是写一个BHO嵌入IE进程,拦截IE的Navigate事件,如果是感兴趣的视频网站就开启Asynchronous Pluggable Protocols拦截所有http请求,找到广告文件的请求,用假广告文件替换。假广告文件是个很短的flv或者swf,这样就绕过了防屏蔽机制。
结果:
目前只是实现了基本功能,可以拦截优酷,土豆,新浪和奇艺的视频广告(其他的我不怎么用),并且暂时不针对外链的视频。暂时只支持IE,下一步用FireBreath做一个通用版。
截图(假广告时长两秒):
存在的问题:
优酷的播放器可以正常播放假广告,但是土豆和新浪的都不可以,接受到文件之后他们会播放失败,之后开始正常播放视频。我专门下载了他们自己的广告文件作为假广告,还是不行。可能他们使用了某种签名机制,这个有待研究,好在他们没有像优酷一样防屏蔽,我暂时直接拦截掉了他们的广告,现在可以正常使用。
下载:摸我
标签:
原文地址:http://www.cnblogs.com/legendlee/p/5545626.html