charles 简单使用

From:https://www.cnblogs.com/wenjun145/p/12995535.html

1、下载安装

1. 下载地址:https://www.charlesproxy.com/latest-release/download.do

 2. 下载之后安装。按照默认next 即可,然后选择路径。

3. charles 。PJ:https://www.zzzmode.com/mytools/charles/

按照下方文字填好,点击生成,会生成一个 jar 包,这个 jar 包是本地 lib 中已经存在的,将它替换。

再次重启即可。。。

2、安装证书

 在弹出的 证书窗口中 ---> 安装证书 ---> 本地计算机 ---> 证书存储( 浏览 )---> 手信任的根证书颁发机构 ---> 下一步 ---> 完成

  • http 代理:菜单栏 Proxy ----> 勾选 "Windows Proxy" ,抓取电脑本地发送的请求,展开相关域
  • https 代理:菜单栏 Proxy ---> SSL Proxying Settings ---> 勾选 "Enable SSL Proxying" 。
        允许所有SSL代理:Add ---> Host : * 和 Port : 443  。这样设置就可以使得所有带锁请求允许被操作

移动端配置

  • 查看 Charles 端口:Proxy ---> Proxy Settings ---> Port:8888,勾选 "Enable transpare proxying"
  • 查看电脑 IP:Help ---> Local IP Address
  • 手机端 WiFi 配置:WiFi ---> 修改网络 ---> 代理 ---> 然后输入电脑IP、端口(代理端口8888)
  • 返回 Charles,界面弹出连接 IP 提示,点击 Allow ---> 完成配置

设置好代理后,需要安装 charles 的 证书,安装好证书后,才能解密 https 的流量。。。

 

3、Charles 基本功能

Charles 工具的几个重要按钮:

  • 扫帚 图标:清屏
  • 圆点 图标:抓包 / 停止抓包
  • 锁 图标:开始 / 停止  SSL 代理
  • 乌龟 图标:模拟弱网络( 流量控制 )
  • 六边形 图标:断点
  • 钢笔图标:构造一个请求,然后发送,即模拟请求
  • 刷新 图标:重新发送选中的请求
  • 对勾:
  • 工具 图标:一些工具。断点,映射,篡改,DNS 洪泛
  • 设置 图标:设置

界面 Structure 模式( 按域名网站显示 ):

  • 以域名划分请求信息,便于定位需求分析和处理的数据
  • 请求的数据结构一目了然
  • 关键字段:Overview 即 概要, Contents :即 内容

Sequence 模式( 按请求顺序显示 ):

  • 以数据请求速度快慢的顺序去执行,请求快的就在前面显示,可以清晰的看到全部请求,以及请求中的资源请求、图片、文本、音乐等。其中,Filter 可以过滤请求

过滤抓取请求

开始抓包后,随着时间的推移,抓取到的网络包越来越多,这是我们可以使用过滤功能,来过滤出我们想要的网络请求。

Proxy -> Recording Settings 中可以设置网络包的过滤选项。

过滤选项中有Include 和 Exclude 两种选项。只有当 Include 为空时,Exclude 中的设置才会生效。过滤条件支持通配符。

模拟慢速网络

在做iPhone开发的时候,我们常常需要模拟慢速网络或者高延迟的网络,以测试在移动网络下,应用的表现是否正常。Charles对此需求提供了很好的支持。

Charles的菜单上,选择"Proxy"->"Throttle Setting"项,在之后弹出的对话框中,我们可以勾选上“Enable Throttling”,并且可以设置Throttle Preset的类型。如下图所示:

修改网络包

修改历史请求

可以将历史的请求修改后,再次发送。

只需选中某个请求,点击上方工具栏中的蓝色钢笔按钮(第四个),就可以进行修改。完成修改后,点击下方的Execute执行请求。

添加断点

窗口上方的工具栏中,第四个按钮就是Enable BreakPoints,用来启用或禁用断点。也可以在 Proxy -> BreakPoints Setting中设置更多具体内容。

Charles中可以像调试程序一样添加断点。方法是右键点击左侧窗口的某个请求,选择BreakPoints添加断点。这样当这个请求发出或者收到response的时候,就会先被Charles拦截下来,并触发断点。

触发断点后,可以对断点的网络包进行各种编辑,然后再继续。点击Execute就可以继续。

同时,也可以在Proxy -> BreakPoints Setting设置断点的各种规则。例如,是在request的时候触发还是 response的时候。

由于设置断点时,Charles是先拦截下整个网络包,再触发断点,当网络包比较大的时候,常常会导致应用超时,触发网络错误的警告,因此,自动地根据规则修改网络包有时显得尤为重要。这就是下面要说的篡改。

拦截后可以修改post参数

然后可以修改Response,不用去麻烦测试修改数据,

设置断点。在请求位置右键,选择Breakpoints

然后选择Proxy的Breakpoint Settings选项,点击进入设置

点进去可以看到我们添加到Breakpoint 的所有请求,双击我们要改的那个请求,如果想断请求,勾选Request,想断响应,勾选Response

设置后点击OK,关闭上面的弹窗,下面的弹窗中我们勾选想断的请求,点击OK

下次请求就可以断请求或者响应了

改写后点击 Execute执行 ,注意改的时候,客户端一般有超时限制(过了超时时间就不会等服务端的返回数据了),所以一般只适用改动较小的测试或者异常测试

篡改(Rewrite)

Rewrite 是按照一组事先设置的规则,篡改特定的网络包中的数据。

在 Tools -> Rewrite 中,选中Enable Rewrite 来开启 Rewrite

Rewrite

勾选 Debug in Error Log 选项,就能在 Charles 控制台中看到 Rewrite 的记录。

首先要在右侧的规则列表中添加一个新规则。在新规则中添加要RewriteLocation,然后再下方添加具体的篡改规则。规则中可以使用通配符。

这样稍后匹配条件的网络包到达的时候,Charles就会自动将其中的内容按规则篡改。

示例:比如 192.168.1.2:8888/a/b/test  与192.168.1.3:8888/a/b/test  两个请求就要分别映射,而 Rewrite 就可以解决这个问题 ,可以把所有的请求url为/a/b/test的请求都构造成同一个数据。

方法:

  • 1、入口:Tools-》Rewrite
  • 2、勾选 Enable Rewrite,点击Add
  • 3、Name根据自己情况随便写,Add后Path路径填写我们请求的url,点击OK

然后Add返回值,选择response,Type选择body,直接把要构造成的json串写到Value中,Ok

下次请求,就会发现192.168.1.2:8888/a/b/test  与192.168.1.3:8888/a/b/test  两个请求都返回了我们自己的json数据。

rewrite还可以批量修改我们的请求参数,比如把所有的上传的did参数都由ANDROID_4af16d720602b56改为ANDROID_123456123456,我们可以按照下图构造:

其中上面部分具体内容为:

下半部分具体内容为:

这样下次请求,我们的did参数就变为我们想要的ANDROID_123456123456了。这种方法对  有要求手机等为新设备才执行某策略的功能点很适用。

映射 Map

Charles 提供的映射功能可以将本地文件或者远程的服务器作为某个请求的 Response。可以方便地进行一些特殊的测试。

  • Map Local。本地映射。在 Tools -> Map Local。可以选择一个本地文件作为某个请求的Response,并且 Charles会帮你封装好Response
  • Remote Remote。远程映射。和本地映射的功能类似,只是将数据源换成了远程服务器。相当于将请求交给另一个服务器处理

在主机名上右键,选择 map remote

在弹出的弹窗中,填写要映射到的地址

映射本地。在一个请求上 右键 ---> 选择map local

模拟弱网

Charles 还可以模拟不同网速环境,可以很方便地测试应用在网络差的情况下的bug。

Proxy -> Throttle Settings 中勾选 Enable Throttling,或者直接点击窗口上方的工具栏中的  乌龟🐢按钮  就可以启用,这个按钮十分形象。

Proxy -> Throttle Settings 中,添加要针对的Locations,如果选中Only for selected hosts,并且Locations中有数据,则只有 Locations列表中的请求会被限速,否则会对全局限速。在Throttle Configuration中可以对网络环境进行十分详细的配置,包括网络的稳定程度、网速、环境等。

SSL 代理

在使用 Charles 的过程中,我们会发现,只有未加密的 Http 请求才能被Charles 正确的解析出数据,其余的Https 请求都处于加锁的状态,但我们不可避免的需要抓取 Https 的包。SSL代理就可以完美解决这个问题。

要启用 SSL 代理,先要在 Proxy -> SSL Proxying Settings 中勾选 Enable SSL Proxying,然后配置要代理的 Location,一般可以直接填星号,以匹配所有请求。

安装 Charles 的证书

Charles中的HTTPS代理的原理是,Charles 充当一个中间人,针对目标服务器动态地生成一个使用Charles根证书(Charles CA Certificate)签名的证书;请求发生的时候, Charles会接收web 服务器的证书,而把自己生成的证书给客户端看。

因此在在使用Charles作为HTTPS代理时,客户端在请求HTTPS接口的时候会弹出安全警告,提示Charles根证书不被信任。我们需要添加Charles根证书为信任证书中。

方法如下:

  • 1、点击Help -> SSL Proxying,根据被抓包设备的类型,来选择对应的安装选项(如果是 OSX 就直接选择Install Charles Root Certificate);
  • 2、如果是iOS真机,则会弹出下面的提示,此时不用按上面的提示来配置代理,只要按照上文的步骤配置过代理了就可以了。然后在Safari中打开chls.pro/ssl安装Charles的证书,就 OK 了。

设置好 SSL 代理后,HTTPS 请求就统统解锁啦!

注意:iOS9 以上系统要使用 Charles 作为 SSL 代理的话要关闭 APP Transport Security ,关闭方法为在 APP的 info.plist 文件添加以下key:

<key>NSAppTransportSecurity</key>
<dict><key>NSAllowsArbitraryLoads</key><true/>
</dict>

Charles 是一个强大的抓包调试工具,它的功能远不止这些

配合 Postman

Postman是一个测试API的利器。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/495187.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Facebook、谷歌、微软利用“黑暗模式”诱骗用户交出数据

来源&#xff1a;网络大数据摘要&#xff1a;挪威消费者委员会指出&#xff0c;Facebook、谷歌以及微软等科技巨头正在使用“黑暗模式”&#xff0c;或用户界面来诱骗用户交出自己的数据&#xff0c;以此推动用户被动选择不利于自身隐私保护的选项。据称&#xff0c;谷歌和Face…

Python 大规模异步新闻爬虫、google翻译、百度翻译、有道翻译、百度指数

参考&#xff1a;https://www.yuanrenxue.com/crawler/news-crawler-urlpool.html url_pool.py # -*- coding: utf-8 -*- # Author : 佛祖保佑, 永无 bug # Date : # File : url_pool.py # Software: PyCharm # description : XXXimport time import redis import pick…

字字珠玑!任正非最新内部演讲:高科技急不来,股市为了圈钱夸大太多

来源&#xff1a;综合自中国企业家杂志、心声社区摘要&#xff1a;“科学研究&#xff0c;没有浪费就不可能有成功。华为公司走到今天&#xff0c;我们在产品研究的成功率应该还没有超过50%&#xff0c;相当于我们每年有几十亿美金被浪费了&#xff0c;但是培养了一大批高级将领…

table数据表 边框特效

本文针对用table显示数据&#xff0c;主要是table的线条颜色处理。 1.下面的这个方法&#xff0c;比较试用于单一的table不适用于table 套着table。这样的话在某些浏览器上浏览是有差别的。table套table 有可能会出现线条加粗的情况。 <style type"text/css"> …

jQuery 教程

菜鸟教程 --- jQuery 教程&#xff1a;https://www.runoob.com/jquery/jquery-tutorial.html jQuery 是一个 JavaScript 库。 jQuery 极大地简化了 JavaScript 编程。 jQuery 简介 什么是 jQuery &#xff1f; jQuery 是一个 JavaScript 函数库。 jQuery 是一个轻量级的"…

世界首条柔性人造触觉神经诞生,有望应用于义肢感触等领域

来源&#xff1a;中国青年报摘要&#xff1a;如果能让机器人拥有触觉&#xff0c;可以感知温度、压力&#xff0c;甚至具有神经活动&#xff0c;那么它们将“解锁”更多新技能。如果能让机器人拥有触觉&#xff0c;可以感知温度、压力&#xff0c;甚至具有神经活动&#xff0c;…

基于 frida 实现的逆向工具包 hooker

hooker逆向工作台&#xff1a;https://github.com/CreditTone/hooker hooker 是一个基于 frida 实现的 逆向工具包。为逆向开发人员提供统一化的脚本包管理方式、通杀脚本、自动化生成hook脚本、内存漫游探测activity和service、firda版JustTrustMe。 hooker 和 frida、object…

魏少军谈AI芯片热潮和架构创新 透露清华Thinker芯片将独立融资

来源&#xff1a;网易智能摘要&#xff1a;在近日于深圳举办的2018 CCF-GAIR 全球人工智能与机器人峰会上&#xff0c;清华大学微电子所所长魏少军发表了演讲&#xff0c;阐述了AI时代芯片架构的问题。会后&#xff0c;魏少军接受了网易智能的专访&#xff0c;谈到了中国芯片行…

JS 逆向 --- 过无限debugge、hook、js混淆还原、控制流混淆

访问这个网站的时候&#xff0c;cookie 里面会有一个 sign 值&#xff0c;这个sign 值是通过 JavaScript 代码生成的&#xff0c;JS 代码是用 ob 混淆的&#xff0c; 当打开 "开发者工具" 时&#xff0c;会直接进入 "无限 debugger" 模式&#xff0c;过无限…

机器人时代的资本主义:21世纪的工作,收入和财富

来源&#xff1a;资本实验室摘要&#xff1a;关于人工智能、机器人、自动化的未来&#xff0c;每天都有无数的讨论。乐观、向往、欢迎&#xff1b;悲观、担心、抗拒……每个人都有自己的态度和心理。聚焦前沿科技创新与传统产业升级关于人工智能、机器人、自动化的未来&#xf…

android

启动activity: Intent intentnew Intent(this, SignInActivity.class); startActivity(intent); 创建一个发邮件的activity Intent intentnew Intent(Intent.ACTION_SEND); intent.putExtra(Intent.EXTRA_EMAIL,recipientArray); startActivity(intent); Figure 1. The activi…

JavaScript 逆向 ( 一 ) --- JavaScript 语法基础

js 逆向&#xff1a;https://www.cnblogs.com/wuxianyu/category/1940304.html js逆向2&#xff1a;https://www.cnblogs.com/wuxianyu/category/1941486.html JS 中的类型转换&#xff1a;https://segmentfault.com/a/1190000013679224 1、JavaScript 基础 菜鸟教程 JavaScrip…

解释深度学习的新角度,来自光学的启发

来源&#xff1a;网络大数据摘要&#xff1a;谷歌技术人员、MIT博士Ali Rahimi受光学的启发&#xff0c;从功能模块化和层级的角度讨论了一种解释深度学习的新思路。深度学习已经成熟到可以教给高中生了么?我思考的这个问题&#xff0c;源于不久前我收到的⼀封来自某大公司产品…

jQuery 结构分析

jquery核心 转自http://www.iteye.com/topic/783260 (function( window, undefined ) { // 构造jQuery对象 var jQuery function( selector, context ) { return new jQuery.fn.init( selector, context, rootjQuery ); } // 工具函数 Utilities // 异步队列 Deferred // 浏览…

北京航空航天大学王田苗教授:当前智能机器人发展若干挑战性问题

来源&#xff1a;雷锋网摘要&#xff1a;2018 全球人工智能与机器人峰会&#xff08;CCF-GAIR&#xff09;在深圳召开&#xff0c;峰会由中国计算机学会&#xff08;CCF&#xff09;主办&#xff0c;雷锋网、香港中文大学&#xff08;深圳&#xff09;承办&#xff0c;得到了宝…

JavaScript 中的 require / exports、import / export、浅谈JavaScript、ES5、ES6

Node.js 的基础教学 之 exports 和 module.exports&#xff1a;https://zhuanlan.zhihu.com/p/82057593 浅谈 JavaScript、ES5、ES6&#xff1a;https://www.cnblogs.com/lovesong/p/4908871.html 1、为什么有模块概念 理想情况下&#xff0c;开发者只需要实现核心的业务逻辑&…

深度 | 智慧城市背景下的“多规合一”标准探究

来源&#xff1a;《技术与应用》 作者&#xff1a;杜青峰 万碧玉 王益 吴丽丽 王树东 姜栋 摘要&#xff1a;在参与智慧城市标准综合评价系统研发过程中&#xff0c;研究我国目前城市规划标准的现状&#xff0c;总结了我国现有城市规划标准中存在的自成标准、内容冲突、缺乏衔接…

Windows Terminal完整指南

原文&#xff1a;Windows Terminal: The Complete Guide&#xff1a;https://www.sitepoint.com/windows-terminal/ From&#xff1a;https://zhuanlan.zhihu.com/p/272082726 github&#xff1a;https://github.com/microsoft/terminal Windows Terminal&#xff0c;它是 WS…

谁将引领5G标准?

来源&#xff1a;中国知识产权杂志作者&#xff1a;王活涛 郑友德 沈剑锋 袁真富中国企业的5G技术创新之所以能不断取得突破性的成果&#xff0c;在全球通信标准上占有一定的“话语权”&#xff0c;在很大程度上得益于中国企业对技术创新的大力投入和发明专利积累。截止2018年6…

Python 操作 Kafka --- kafka-python

kafka-python&#xff1a;https://github.com/dpkp/kafka-python kafka-python 文档&#xff1a;https://kafka-python.readthedocs.io/en/master/apidoc/modules.html kafka 官方文档&#xff1a;http://kafka.apache.org/documentation.html Python 操作 Kafka 的通俗总结&a…