作者简介:互扯程序,某互联网公司 P8 级专家攻城狮,曾参与过央视全台网的研发工作。目前正在做车联网项目的云平台的架构设计与研发工作。平时喜欢打球游泳,偶尔发表一些技术文章,有个公众号叫「互扯程序」。

写在前面

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

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

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

如何使用抓包神器 Charles?

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

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

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

  • 第三步配置手机代理。

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

去除优酷视频 App 广告

打开优酷 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 的作用是什么?

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

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

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

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

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

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

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

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

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

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

Tool -> Rewrite...

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

接下来我们再看,如何去除腾讯视频的广告,其实更简单

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

分析腾讯视频的请求的方法和分析优酷视频的请求方法是一样的,点击每一个请求观察一下。

只有 https://lives.l.qq.com 这一个请求有大量的 JSON 数据,比较靠谱。

把 JSON Copy 出来放到 JSON 编辑器查看。并将 JSON 里每一个 URL Copy 到浏览器里打开看看,你会发现广告可以在浏览器里直接播放。证明我们的判断是正确的,这个请求就是获取广告的请求。

每一个连接都看一遍后,比较庆幸的是,发现只有广告,并没有正片内容,它不像是优酷截取的数据那样,广告和正片是放到一个 JSON 数据里进行返回的。对优酷的广告进行过滤的时候需要对 JSON 进行内容的修改,因为不能影响正片的播放。

所以对腾讯视频的广告进行过滤非常简单,只要把获取广告的这个请求 URL 屏蔽即可。怎么做呢?非常简单。

还记得我们上一章讲的 Map Remote 吗?把 htts://lives.l.qq.com/livemsg 重定向到一个无效的地址即可,这样 App 在获取广告数据的时候获取不到,为了容错直接跳过播放广告,直接去获取正片的数据进行播放了。

配置完成之后重新播放视频就会发现它不再播放广告了。欧耶✌️,腾讯视频过滤广告完成。

1.C语言学习|封装和模块化思想

2.嵌入式系统开发中,如何选择适合的MCU平台?

3.让嵌入式工程师毛骨悚然的掉电丢数据事故可以这样解决!

4.高薪都被谁拿走了?中国电子工程师薪酬调查大揭秘

5.学好单片机设计,关于晶振的这些难题一定要先搞懂!

6.80后技术人的中年危机

免责声明:本文系网络转载,版权归原作者所有。如涉及作品版权问题,请与我们联系,我们将根据您提供的版权证明材料确认版权并支付稿酬或者删除内容。

如何用技术手段“干掉”优酷、腾讯视频 App 里讨厌的广告?相关推荐

  1. 一段代码去掉优酷腾讯视频右上角LOGO图标

    有时候你在看视频,上面老是有个绿绿的LOGO挡着视线,确实不爽,就写了串JS代码,下面来看看教程. 1.打开视频网站,找到你想看的电影. 2.F12打开调试工具,找到控制台:Console 3.在下面 ...

  2. 移动端html如何加载优酷视频,网站怎么引用优酷腾讯视频并支持手机播放

    网站上引用一些视频,如何让这些视频既支持电脑播放,又支持手机播放,我们可以通过 iframe 调用的方式来解决这个问题. 首先让我们来了解一下嵌入窗体: iframe属性: allowtranspar ...

  3. 名编辑电子杂志大师教程 | 如何添加优酷/腾讯视频?

    第一步:点击"页面编辑面板 "进入编辑页面: [▲图1] 第二步:打开需要添加视频的页面: 第三步:点击"添加链接"-根据需要画链接框: [▲图2] 第四步:点 ...

  4. 【VIP视频网站项目二】搭建爱奇艺优酷腾讯视频官网首页轮播图效果及实现原理分析

    这个是实现的效果,基本上轮播效果和主流网站的一致,但是我也在上面优化了一些效果, 可以在线预览效果:https://vip.52tech.tech/ 目前项目代码已经全部开源:项目地址:https:/ ...

  5. 下载优酷腾讯等视频快捷网站

    下载优酷腾讯等视频快捷网站 http://www.downfi.com/video/ b站视频下载 http://www.flvcd.com/ 转载于:https://www.cnblogs.com/ ...

  6. 织梦网站添加优酷腾讯等视频方法

    网站添加视频的时候,一般采用的是第三方渠道,比如把优酷上的视频添加上来,最近用织梦做了个网站,结果添加优酷视频的时候,不能播放,经过研究后,终于找到了解决方法 1.打开优酷,复制通用代码 2.织梦后台 ...

  7. 优酷下载的视频保存在哪里

    打开我们客户端软件,进入首页,点击右上角的菜单图标 优酷下载的视频保存在哪里?如何修改保存位置? 02. 找到列表中的设置选项,点击进入 优酷下载的视频保存在哪里?如何修改保存位置? 03. 进入设置 ...

  8. 手机优酷缓存的视频在哪找

    很多人都喜爱在优酷视频上看剧或是影片,有时出门度假旅游或是乘火车等特殊情况,大家必须用手机优酷来下载好一些自身喜爱看的电视连续剧或是影片,便捷那时候没有网络,还可以在手机优酷上看电视剧,进而消磨无趣的 ...

  9. 优酷android 离线 导出来,手机优酷缓存的视频如何导出 缓存视频导出到电脑方法...

    优酷手机客户端导出的视频都是分段flv,无法通过其他播放器进行播放,那么要怎么导出到可播放格式呢?是否可以输出到电脑?下面小编就为你带来具体的流程. 导出步骤: 首先我们需要打开手机的文件夹,本机文件 ...

最新文章

  1. python matplotlib散点图-python matplotlib从函数更新散点图
  2. Matlab中的算术运算和数学函数
  3. hough变换检测圆周_hough变换原理以及实现(转载)
  4. 关于电脑的基础知识_改装小白必看的汽车音响改装基础知识!
  5. 假如有一门叫做 Ctrump 的编程语言...
  6. 再也不怕重装eclipse! 让你的eclipse插件只下载一次
  7. mac下载安装adb环境
  8. Amaze UI 图标查询
  9. 实现px和vw的转换
  10. 这才是打开风变编程的正确操作方式
  11. python判断输入回车_python判断回车
  12. 从零开始:微信小程序零基础入门宝典
  13. Java入门基本数据类型(羊驼)
  14. Docker提交天池比赛代码流程(windows10环境下)
  15. SAS学习之基本统计过程
  16. 阿里一二三面、HR面面经-后台
  17. DDD的常见问题、争论以及局限性
  18. Ⅳ JavaScript函数
  19. 陆涛喜欢夏琳吗_夏琳·香布利斯(Charlene Chambliss):从心理学到自然语言处理和应用研究
  20. kubernetes1.8.5集群安装(带证书)

热门文章

  1. Ubuntu 下的nis认证
  2. 交通预测论文翻译:Deep Learning on Traffic Prediction: Methods,Analysis and Future Directions
  3. 现实环境中,关于Teb Local Planner 参数调试总结
  4. linux 文件夹同步备份,SyncToy实现本地文件夹同步备份
  5. 佟刚老师最全的SpringmVC博客网址
  6. unsigned char型整数
  7. 华为OD机试2022.11.04 只记得两题
  8. Matlab中set-gca函数的使用
  9. 基于FPGA的密码锁开发——(3)密码设置模块驱动
  10. git学习笔记[idea整合GitHub,Gitee](非常详细)