MyException - 我的异常网
当前位置:我的异常网» 互联网 » 怎么通过技术手段 “干掉” 视频APP里讨厌的广告

怎么通过技术手段 “干掉” 视频APP里讨厌的广告

www.MyException.Cn  网友分享于:2013-01-25  浏览:0次
如何通过技术手段 “干掉” 视频APP里讨厌的广告?

    本文主要目的是交流学习Charles抓包工具的使用技巧,以及给大家分享一下分析问题的思路,欢迎大家评论转发,但不能以盈利为目的行为。广告对于内容提供商来说是重要的财务来源,请大家多多看广告,这样才能促使内容提供商发布更多的内容供大家欣赏。

 

    这篇文档是Charles抓包工具的高级用法,如何下载安装以及怎样配置,请看我上一篇关于Charles的介绍。

 

    前几天写了DNS域名解析的文章,在写的过程中让我又加深了对域名解析的理解,然后又结合Charles抓包工具,所以突发奇想,能不能做点好玩的事情呢?那我们就继续我们今天的主题吧!

 

    移动互联网的发展,促使各大商家的广告投放从传统媒介转移到了移动设备终端,所以我们在使用各种视频APP的时候,会有大量的广告来缓解我们的“视觉疲劳”。哈哈,追剧的人趁着广告休息休息自己的眼睛。那不想休息的人呢?怎么把广告去掉呢?那就要使用我们的抓包神器Charles了,我们把整个抓包过程和分析过程按照步骤一一写出了,供大家学习交流。

 

       第一步先去掉系统代理(系统代理默认是打开的),因为这样减少数据量,方便我们观察。

       第二步配置SSL证书,因为很多视频APP发送的部分请求是https的。

       第三步配置手机代理。

 

     以上三步在上一篇的Charles教程里都有,不了解的同学先移步过去按照过程配置一下,支持Windows和Mac,完成之后就可以一步步的跟着我下面的教程继续了。

 

       打开优酷APP,这时候你会发现一堆的请求被我们截取到,这些基本没用,全部清空,然后随便选择一个视频,点击打开,我们又拦截到了一堆的请求,这时候视频里的广告开始播放,OK,这些抓取到的数据,其中就有广告数据。那我们就专心关注这些数据,一一打开观察一下,后续再进来的请求基本没用了,我们记录下来最后位置。

 

观察一下返回的json数据,看看哪个比较像,有一些返回图片的请求肯定不是了,可以配置排除抓取这些请求,不在抓这样的包,减少我们要关注的请求量。

 

打开Proxy -> Recoding Settings... 加入要排除的抓包请求,然后清空页面,重新点开视频,这时候我们排除请求就看不到了。

 

但是还是有一堆请求,该怎么办呢?用一个简单的原理(想要了解的话,可以看看我上一篇关于DNS的文章,不了解也不影响我们继续下面的教程),把这些域名重定向到另外一个不存在的服务地址,右键 -> 选择Map Remote

 

这里我们把它重定向到本机地址不存在的服务端口

 

一个一个的修改尝试,把所有域名都改一遍,修改一个,点击一下手机视频,看看是否播放正常。

 

当你发现广告不播了,提示错误,这说明你找到了那个关键的请求。

 

找到这个请求,去掉重定向,发现播放又正常了,OK,确认了我们要找的请求数据。其实就是https://ups.youku.com。

下面我们开始分析这个请求

 

我们把返回的json数据copy出来放到json浏览工具里

 

从这个json来看,ad应该就是广告了,而stream就是实际的视频流了。我们点击打开ad看到了一堆的连接地址。

 

随便copy一个放到浏览器里,就会播放广告了。从分析来看,优酷的广告是分段的,每一小段的广告组成了他将近两分钟的广告内容。

 

顺便看看stream的内容,同样是一堆的URL地址,随便打开一个,这就是实际播放的视频了,从分析来看,同样也是一个片段一个片段组成的一个完整的视频。

 

到这,大家是不是觉得有点意思啊。同时也会有一个疑问,怎么把广告去掉呢?我们先不着急得到最终答案,先来看看另外一个新功能。我们把刚才的json数据,保存到桌面,命名为"ups.json"备用。然后选中https://ups.youku.com,右键选择Map Local,然后点击Choose选择刚才备份的那个文件,然后点击OK。

 

    然后看看效果,刚才我选择的连续剧里面的其中一集,现在不管选择哪一集,播放的都是刚才那一集。是不是很神奇?聪明的朋友已经想到这是为什么了。我们来讲一下Map Local的作用是什么?

 

    1. Map Remote 这个在上一遍文章里已经讲过,代理转发,或者叫请求重定向,把一个请求地址转发到另外一个地址去处理,Remote是远程,意思把这个请求重定向到另外一个远程的地址上。

    2. 而Map Local,顾名思义,就是把请求重定向到本地。而本地的文件里模拟的就是请求的返回结果。所以说,他每次的请求都会被重定向到同一个地方,返回同样的数据,所以不管点击任何一个节目,都会播放我们选择的那条数据。

 

    OK,那么我们该怎么处理广告呢?我们已经找到了广告的那段数据,我们尝试修改广告的请求地址,改到任意一个不存在的地址,这样播放器就下载不到这个广告,就无法进行播放了。

 

    大家会不会认为既然广告不能播了,那我们要看的电视剧还能正常播放吗?这是一个很好的问题,试想一下,哪个APP会因为网络不通畅导致广告没播成,就不再继续请求视频数据了?这样用户将大量流失,他们肯定会做容错处理的。

 

我们先来改改试试,打开刚才保存的ups.json文件,找到ad,然后修改里面的地址,然后保存。

 

    我们再重新点击手机视频,还是有广告播放,这是因为之前播过广告了,APP进行了缓存。我们需要操作一下APP,清除缓存。选择 我的 -> 设置(右上角)

 

    再次点击视频。发现一直在旋转等待,等了半天,没播广告,播视频了。旋转等待的原因,是由于我们给了一个无效的广告地址,他去请求,但是请求不到,一直等到超时返回,才继续播放视频。

 

到这,广告没了,大功告成了?没有,这样做也太low了。还不如看广告呢......

 

    前面讲的都是分析过程,最后我们要放大招了。把之前所有的配置全都删除掉,重新来,其实就一步搞定。那为什么要啰嗦半天呢?如果不啰嗦半天,我们学不到东西啊。过程永远比结果更重要。

 

    我们根据刚才的分析结果:“如果找不到广告,APP会进行容错,继续播放视频”,我们要动态改写返回结果,把ad改成ad1。那么APP找不到ad属性,将解析不到广告内容,便不会播放广告,而是会继续播放视频,一点卡顿都没有,因为不像是之前给了个假地址,需要等待超时时间。

Tool -> Rewrite...

 

 

OK,大功告成。去APP里点击试试看吧。

到这,你已经是Charles使用高手了,你可以试试其它的视频软件,自己尝试去抓包。关注公众账号,进技术群,跟大家分享交流你的经验。下一期会讲讲怎么去掉腾讯视频的广告。

 

腾讯视频其实更简单。。。

 

相关阅读:

通过技术手段 “干掉” 视频APP里讨厌的广告之(腾讯视频)

抓包神器之Charles,常用功能都在这里了

 

推荐阅读:

htt2.0的时代真的来了

如何站在巨人的肩膀上,将自己的产品赋予AI的能力?百度UNIT

 

学习分享:

深度机器学习56G视频资源分享

 

知识分享:现在是资源共享的时代,同样也是知识分享的时代,如果你觉得本文能学到知识,请把知识与别人分享

 

文章评论

老美怎么看待阿里赴美上市
老美怎么看待阿里赴美上市
 程序员的样子
程序员的样子
亲爱的项目经理,我恨你
亲爱的项目经理,我恨你
我跳槽是因为他们的显示器更大
我跳槽是因为他们的显示器更大
10个帮程序员减压放松的网站
10个帮程序员减压放松的网站
为什么程序员都是夜猫子
为什么程序员都是夜猫子
聊聊HTTPS和SSL/TLS协议
聊聊HTTPS和SSL/TLS协议
为啥Android手机总会越用越慢?
为啥Android手机总会越用越慢?
程序员和编码员之间的区别
程序员和编码员之间的区别
写给自己也写给你 自己到底该何去何从
写给自己也写给你 自己到底该何去何从
老程序员的下场
老程序员的下场
程序员眼里IE浏览器是什么样的
程序员眼里IE浏览器是什么样的
Google伦敦新总部 犹如星级庄园
Google伦敦新总部 犹如星级庄园
5款最佳正则表达式编辑调试器
5款最佳正则表达式编辑调试器
那些争议最大的编程观点
那些争议最大的编程观点
我的丈夫是个程序员
我的丈夫是个程序员
中美印日四国程序员比较
中美印日四国程序员比较
程序员的鄙视链
程序员的鄙视链
那些性感的让人尖叫的程序员
那些性感的让人尖叫的程序员
每天工作4小时的程序员
每天工作4小时的程序员
总结2014中国互联网十大段子
总结2014中国互联网十大段子
团队中“技术大拿”并非越多越好
团队中“技术大拿”并非越多越好
程序员必看的十大电影
程序员必看的十大电影
60个开发者不容错过的免费资源库
60个开发者不容错过的免费资源库
程序员都该阅读的书
程序员都该阅读的书
程序员的一天:一寸光阴一寸金
程序员的一天:一寸光阴一寸金
“肮脏的”IT工作排行榜
“肮脏的”IT工作排行榜
程序员最害怕的5件事 你中招了吗?
程序员最害怕的5件事 你中招了吗?
当下全球最炙手可热的八位少年创业者
当下全球最炙手可热的八位少年创业者
如何成为一名黑客
如何成为一名黑客
2013年美国开发者薪资调查报告
2013年美国开发者薪资调查报告
一个程序员的时间管理
一个程序员的时间管理
科技史上最臭名昭著的13大罪犯
科技史上最臭名昭著的13大罪犯
程序员应该关注的一些事儿
程序员应该关注的一些事儿
我是如何打败拖延症的
我是如何打败拖延症的
看13位CEO、创始人和高管如何提高工作效率
看13位CEO、创始人和高管如何提高工作效率
鲜为人知的编程真相
鲜为人知的编程真相
初级 vs 高级开发者 哪个性价比更高?
初级 vs 高级开发者 哪个性价比更高?
什么才是优秀的用户界面设计
什么才是优秀的用户界面设计
程序员周末都喜欢做什么?
程序员周末都喜欢做什么?
2013年中国软件开发者薪资调查报告
2013年中国软件开发者薪资调查报告
Web开发人员为什么越来越懒了?
Web开发人员为什么越来越懒了?
“懒”出效率是程序员的美德
“懒”出效率是程序员的美德
如何区分一个程序员是“老手“还是“新手“?
如何区分一个程序员是“老手“还是“新手“?
Java 与 .NET 的平台发展之争
Java 与 .NET 的平台发展之争
旅行,写作,编程
旅行,写作,编程
做程序猿的老婆应该注意的一些事情
做程序猿的老婆应该注意的一些事情
Java程序员必看电影
Java程序员必看电影
要嫁就嫁程序猿—钱多话少死的早
要嫁就嫁程序猿—钱多话少死的早
软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有