Charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当程序连接Charles的代理访问互联网时,Charles可以监控这个程序发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。

Charles主要功能:

  • 支持SSL代理。可以截取分析SSL的请求。

  • 支持流量控制。可以模拟慢速网络以及等待时间(latency)较长的请求。

  • 支持AJAX调试。可以自动将json或xml数据格式化,方便查看。

  • 支持AMF调试。可以将Flash Remoting 或 Flex Remoting信息格式化,方便查看。

  • 支持重发网络请求,方便后端调试。

  • 支持修改网络请求参数。

  • 支持网络请求的截获并动态修改。

  • 检查HTML,CSS和RSS内容是否符合W3C标准。

下面是过滤腾讯视频广告的步骤

  1.首先在Proxy-->Proxy Settings中设置代理服务器的端口并允许所使用http代理

  可以把Proxy下面的Windows Proxys关掉,不然会监控电脑的http请求.会有很多请求.

  2.在手机wifi中使用代理,代理为使用charles电脑的ip和刚才配置的端口(888),这个操作必须让电脑和手机在同一局域网内,不然手机找不到ip。

 

  这样子电脑就可以监控手机的请求了.

  3.下面用手机上的腾讯视频随便点击一个视频,charles监控到这几个请求.

  

  4.点开每一个请求查看数据

  

  最终找个一个返回json数据的请求,这个请求返回了adList以及一系列的广告url,复制这些url在浏览器中就可以看到广告啦,但是我们并不是来看广告的.

  5.过滤广告的方法有两种

  方法一

  第一种是右键那条请求-->Map Remote,然后配置如下

  

  将这条请求转发到127.0.0.1:12345上,实际上12345端口没有开.所以请求一定会出错就会出现这种状况

  

  发现不是请求而是请求,请求转发到请求不到的ip和端口上,这样就无法获取广告的链接也就无法播放广告,而强大的播放器自然不会因为广告请求不到就崩掉了,它会选择继续播放视频,然后这个就可以了.

  方法二

  选择Tools-->Rewrite

  配置一下要重写的请求路径    

    

  再配置一下要重写的内容重写response里面adList为adList111,这样是为了请求到这个json数组后找不到adList这个属性从而无法解析。

  

  最后发现请求的结果从这个

  

变成了这个  

其他抓包工具

WireShark是根据网卡抓包,抓的是走网卡发送的所有包,Charles只能抓Http协议和HTTPS协议的包,而Wireshark可以抓任何包。

Burp也是针对web的,同样是Http和Https协议

WireShark常用表达式

ip.addr == 源ip/目标ip    #会返回两个包,一个是请求包一个是相应包,如果要看相应包要用这个
ip.dst == 192.168.1.1   #显示目标地址是192.168.1.1的数据包
ip.src == 192.168.1.1   #显示源地址是192.168.1.1的数据包
ip.addr == 222.222.221.138 and tcp.port==80 && http      #ip(s)并且端口(s)并且协议为http

ip.src==222.222.221.138/150   //网络过滤,过滤一个网段

charles工具过滤腾讯视频播放器广告的更多相关文章

  1. Clappr——开源的Web视频播放器

    巴西著名的门户网站Globo.com(视频播放器),使用的是基于OSMF的Flash组件.在最近几年的发展过程中,Globo为视频平台陆续添加了不少额外功能,例如: 字幕,广告,画中画播放等.然而,由 ...

  2. charles工具的使用

    charles工具使用 charles除了之前介绍过模拟弱网的功能外,还有很多强大的功能.最近客户端测试用到的功能介绍如下: 一.准备工作 1.手机设置代理 charles设置代理端口号8888:Pr ...

  3. 网页中插入Flvplayer视频播放器代码

    http://blog.csdn.net/china_skag/article/details/7424019 原地址:http://yuweiqiang.blog.163.com/blog/stat ...

  4. flvplayer.swf flv视频播放器使用方法

    今天由于网页上要加入一个视频文件,就研究了一下flv视频播放器flvplayer.swf      :   关于SewisePlayer  插件 演示例子链接   一.直接在html文件中加载: &l ...

  5. android形状属性、锁屏密码、动态模糊、kotlin项目、抖音动画、记账app、视频播放器等源码

    Android精选源码 直观了解Android的"形状"属性如何影响Drawable的外观. 一个灵活的视频播放器, 可替换播放器内核. android锁屏输入密码功能源码 背景动 ...

  6. 分享一个基于HTML5实现的视频播放器

    什么是hivideo? 最近一段时间在使用PhoneGap开发一个App应用,App需要播放视频,本想直接使用html5的video,但使用它在全屏播放时不支持横屏播放,只能放弃.最终决定还是自己封装 ...

  7. C语言基于GTK+Libvlc实现的简易视频播放器

    小编心语:现下,各种视频播放软件层出不穷,竞争也越演越烈,不知道大家有木有这个想法,小编有时在想能不能做一款属于自己的视频播放器呢~小编特意去实验楼,整理出了这篇关于如何实现简易视频播放器的博文.简易 ...

  8. 【Linux_Fedora_应用系列】_2_如何安装视频播放器和视频文件解码

    在前面的一篇博文中,我们进行了音乐播放器的安装和解码器的安装.[Linux_Fedora_应用系列]_1_如何安装音乐播放器和mp3解码 这里我们来进行视频播放器的安装.我们还是通过yum方式安装. ...

  9. Pyqt 音视频播放器

    在寻找如何使用Pyqt做一个播放器时首先找到的是openCV2 openCV2 貌似太强大了,各种关于图像处理的事情它都能完成,如 读取摄像头.图像识别.人脸识别.  图像灰度处理 . 播放视频等,强 ...

随机推荐

  1. oracle goldengate安装

    1.ftp工具上传ogg112101_fbo_ggs_Linux_x64_ora11g_64bit.zip分别到source和target服务器 [oracle@localhost mnt]$ ll ...

  2. 当url作为id时的删除

    API Documentation — Elasticsearch 6.3.1 documentation https://elasticsearch-py.readthedocs.io/en/mas ...

  3. Introduction to Structured Data json的2种形式 JAVA解析JSON数据 - JsonArray JsonObject

    https://developers.google.com/search/docs/guides/intro-structured-data Structured data refers to kin ...

  4. stark - 注册表、生成url

    一.配置 stark组件开发,仿django自带得admin组件. 1. startapp stark 2. settings: 'stark.apps.StarkConfig' 3. 启动就执行 f ...

  5. SaltStack系列(二)之常用模块

    一.saltstack的内置模块汇总 acl,    aliases,    alternatives,    apache,    archive,    artifactory,    block ...

  6. Windows Server 2008 R2(X64) MSDN镜像简体中文版与英文版ISO下载及Key激活码

    Windows Server 2008 R2 MSDN ISO镜像简体中文版 文件名:cn_windows_server_2008_r2_standard_enterprise_datacenter_ ...

  7. java基础语法 List

    List:元素是有序的(怎么存的就怎么取出来,顺序不会乱),元素可以重复(角标1上有个3,角标2上也可以有个3)因为该集合体系有索引, ArrayList:底层的数据结构使用的是数组结构(数组长度是可 ...

  8. SpringData环境搭建代码编写

    首先我们在前面的两节已经了解了SpringData是干什么用的?那我们从这节开始我们就开始编码测试SpringData. 1:首先我们从配置文件开始,我们首先需要写一个连接数据库的文件db.prope ...

  9. SimpleDateFormat实现String与Date之间的转换

    基本用法: java.text.SimpleDateFormat format=new SimpleDateFormat("yyyy-MM-dd"); java.util.Date ...

  10. 27Tcp文件传输

    前面介绍了TCP和UDP的通信,只是文体通信,只能传送文字.本次介绍文件传输,也就是文件读写和TCP通信的结合. 解析:根据之前的TCP通信,建立彼此的连接.服务器选择文件,首先将文件的基本信息发送给 ...