iOS开发抓包工具之Charles使用

2023-11-03

在iOS开发过程中,抓包是常见的必备技能之一。这里我们主要介绍一下Mac下的抓包利器Charles(文中版本:4.0.1)。它可以非常方便的抓取Http/Https请求,从而提高我们的开发效率。本文中不提供破解版安装使用说明(网上一大堆),建议使用正版,官方dmg下载地址:点击此处

一、如何抓取Http请求?

(1)安装完成之后打开Charles,设置端口号:8888(端口号可以自定义)。

选择“Proxy”菜单下的“Proxy Settings”子菜单。打开“Proxy Settings”对话框:


在“Proxy Settings”对话框中设置端口号:8888,并勾选“Enable transparent Http proxying”项:


(2)打开“网络偏好设置”查看电脑IP地址:


(3)设置手机网络(iOS):


(4)打开需要抓包的手机APP,初次使用时,Charles会弹出确认对话框,直接点击”Allow”按钮后就可以看到对应的请求数据。

温馨提示:抓完包之后,请把手机WiFi中的HTTP代理关闭。不然可能造成iOS无法访问网络。

二、如何抓取Https请求?

(1)电脑安装SSL证书

选中Charles,在“Help”菜单中选择—>“SSL Proxying”—>“Install Charles Root Certificate”会自动打开钥匙串访问窗口:


在“钥匙串访问”窗口中找到对应的证书,双击打开。设置“使用证书时”项为:始终信任。


填写管理员密码更新设置。


(2)手机安装证书(使用Safari方式):

请确保手机已经设置好手动代理(具体方式参照上面HTTP抓包设置方式)。

在手机Safari浏览器中输入下面的链接地址:http://charlesproxy.com/getssl。手机会自动跳转安装“Charles Proxy SSL Proxying”描述文件。如下图所示:


点击“安装”按钮,会提示输入手机密码,然后确认安装。


以上便完成手机SSL证书安装步骤。

(3)在Charles工具栏上点击设置按钮,选择“SSL Proxying Settings…”:

打开“SSL Proxying Settings”对话框:


点击“Add”添加:Host中输入*表示匹配所有主机。https默认端口号:443。


添加完成显示结果如下:


(4)测试:

安装手机证书之前测试结果如下图所示:


安装手机证书之后测试结果如下图所示:


针对Charles代理访问https有些正常有些失败的处理方法(一般https只要打开charles 的”Enable SSL Proxying”代理就能访问):点击此处

三、如果没有Wifi,我们还可以这样抓包?(本文不做详解)

(1)抓包之rvictl方式:

开启虚拟端口:rvictl -s

关闭虚拟端口:rvictl -x

然后使用wireshark来捕捉这个端口数据。

(2)抓包之tcpdump方式:

有个很大的缺点是手机需要越狱。

本文内容中部分来自网络,后续会不断更新完善。欢迎一起学习交流!

如需转载,请注明出处

四、参考博客地址:

Mac上的抓包工具Charles

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

iOS开发抓包工具之Charles使用 的相关文章

  • 使用Python操作MySQL的小技巧

    更多编程教程请到 菜鸟教程 https www piaodoo com 友情链接 好看站 http www nrso net 高州阳光论坛https www hnthzk com 1 获取插入数据的主键id import pymysql d
  • passwd Authentication token manipulation error----linux

    分享一下我老师大神的人工智能教程 零基础 通俗易懂 http blog csdn net jiangjunshow 也欢迎大家转载本篇文章 分享知识 造福人民 实现我们中华民族伟大复兴 author skatetime 2009 04 11
  • springboot2.x入门(六)—@validated注解结合全局异常控制器实现统一参数校验

    写接口的时候 参数校验是不是还一个一个的判空或者判断格式是否正确 业务代码没写几行 写了一堆if StringUtils isBlank 对不对 我说的对不对 小啦 逼格小啦 今天我就来深入浅出的讲讲spring boot Validate
  • uni——初次加载问题处理(赋值后再调用)

    案例描述 此案例中 一进页面接收good id并调用接口 这个流程正常 这个changeNum也是一进页面就触发了 组件购物车加减自带 且触发的顺序在onload赋值id之前 这时候good id还是为空 所以接口报错 如何处理这个问题毕竟
  • 解决0% [Waiting for headers] 导致的unable to lock the administration directory (/var/lib/dpkg/) is anothe...

    这是我在配置vim的YouCompleteMe时遇到的问题 我需要使用CMake来编译YCM 在我输入 sudo apt install cmake 由于网络原因导致安装一直卡在0 Waiting for headers 在我多次尝试后发现
  • vue3的基本使用(超详细)

    一 初识vue3 1 vue3简介 2020年9月18日 vue3发布3 0版本 代号大海贼时代来临 One Piece 特点 无需构建步骤 渐进式增强静态的 HTML 在任何页面中作为 Web Components 嵌入 单页应用 SPA
  • C++多态

    目录 多态的概念 多态的定义及实现 多态的构成条件 虚函数的重写 虚函数重写的两个例外 C 11 override和final 函数重载 覆盖 重写 隐藏 重定义 的对比 抽象类 概念 接口继承和实现继承 多态的原理 虚函数表 动态绑定和静
  • 判断当前点击屏幕位置是否UI组件

    判断当前点击位置是否是UI组件 避免在点击按钮时 还继续屏幕其他操作 using System Collections using System Collections Generic using UnityEngine using Uni
  • 04以太坊测试网(Testnets)

    什么是测试网 测试网络 简称testnet 用于模拟以太网主网的行为 有一些公开的测试网络可以替代以太坊区块链 这些网络上的货币毫无价值 但它们仍然很有用 因为合约和协议变更的功能可以在不中断以太网主网或使用真实货币的情况下进行测试 当主网
  • 软考报名照片制作

    报名官网 其实人家官网很贴心的有给照片审核工具 就在上传照片的下面 一行蓝色的小字 下载照片验证工具 emmmm 直接下载安装就好 上传你的白底证件照 然后他会自动给你修建成他需要的照片 然后记得保存 直接提交就可上传成功
  • Android Studio:Gradle project sync failed

    问题 Unable to find method java lang String org gradle api artifacts result ComponentSelectionReason getDescription 参考 gra
  • Java基础-面向对象

    Java基础 面向对象 由于年前工作太忙 实在没时间整理Java基本知识 但是可能长时间不更新不好看 再说我个人也没有半途而废的习惯 所以决定节前还是更新一篇吧 这也算是Java的基本思想和一些偏进阶的东西 如果思考透彻了 理解清楚了 那么
  • 华为od机试题-2023-最新真题-完整题库-两周350分

    华为OD机试题库每半年刷新一次 目前已经整理了90道原题 并提供了java python C 三种解法 这就是2023年Q2的完整题库了 华为OD机试2周350分 高效复习策略 1 牛客网刷基础算法题 每个算法都了解一下 用一周时间 牛客网
  • 基于JDBC的图书管理系统

    文章目录 1 图书管理系统类图 2 程序设计 2 1Student类 2 2Teacher类 2 3Sever类 2 4BookManage类 2 5Manage类 2 6Mbin类 2 7Menu类 3 功能 3 1管理员功能 3 2学生
  • 应急响应LINUX&Windows

    应急响应LINUX Windows linux 文件名 说明 etc passwd 用户信息文件 etc crontab 定时任务文件 etc anacrontab 异步定时任务文件 etc rc d rc local 开机启动项 var
  • angular2 通过 ControlValueAccessor NG_VALUE_ACCESSOR实现自定义表单控件

    一 演示自定义控件的双向绑定 二 如何实现 cform component ts 自定义表单控件CformComponent 的实现 注意下里面的注释段落 import Component OnInit Input forwardRef f

随机推荐

  • QT自定义Widget控件及其使用

    今天来给大家分享一下QT自定义widget控件及其使用 当ui设计器提供的界面不满足实际需求时 可以从QWidget继承自定义的界面组件 有两种方法一种是提升法 另一种是ui设计器自定义界面组件widget组件 我们本次先说提升法 通过这个
  • 预告:Intel、Hulu、阿里、京东、携程等大数据实战直播

    前言 由CSDN主办的SDCC 2017之大数据技术实战线上峰会将在CSDN学院举行 作为SD系列技术峰会的一部分 本次线上峰会秉承干货实料 案例 的内容原则 将邀请圈内顶尖的布道师 技术专家和技术引领者 共话大数据平台构建 优化提升大数据
  • 学生选课系统---数据库课程设计SQL Server

    可以直接从我的GitHub中获取文档 学生选课系统GitHub 一 题目 学生选课系统 二 需求分析 1 根据学生专业学年学期等信息 录入课程完成课程计划 2 根据课程计划 录入任课教师信息 3 学生可以根据学年学期等信息 选择课程完成选课
  • 2022年第三届“大湾区杯”粤港澳金融数学数学建模竞赛

    2022年第三届 大湾区杯 粤港澳金融数学数学建模竞赛 文章目录 2022年第三届 大湾区杯 粤港澳金融数学数学建模竞赛 前言 一 分析B题 券商研报对公司股票走势的影响和投资策略 1 解读题目 2 第一问解析 3 第二问解析 4 第三问解
  • python读excel文件解析

    目录 一 题目描述 二 示例 三 分析 1 获取工作簿对象 2 获取表单的名字 3 通过表单名获取指定的表单对象 4 获取单元格中的值 一 题目描述 例如在当前文件夹下有一个名为 阿里巴巴2020年股票数据 xls 的Excel文件 读取并
  • Android Studio 自动更新

    一丶最近项目开发在用Android Studio 不过无奈自动更新检查时总是提示 Connection failed Please check your network connection and try again 怀疑可能是因为 不可
  • 关于vue3的使用插件FileSaver并且excel导出的实现方法

    参考文章 1vue elementui表格前端导出excel以及自定义导出样式 前端自定义报表模板 elementui 小郑有点困了的博客 CSDN博客 2Vue3 XLSX FileSaver导出导入功能 菜鸟学习JAVA开发的博客 CS
  • ESP8266 下载报错please check partition type 6 addr:3fd000 len:3000

    问题现象 串口打印 ESP8266 12F 的错误如下 ets Jan 8 2013 rst cause 2 boot mode 3 7 load 0x40100000 len 23948 room 16 tail 12 chksum 0x
  • 《信号与系统》解读 前言:为什么要解读《信号与系统》?

    什么需要解读 信号与系统 为什么需要开辟这个专题呢 1 基础理论的基础 2 工程技术的基础 3 建立系统思维 1 基础理论的基础 信号与系统 是 数字信号处理DSP 通信原理 数字通信原理 等其他基础课程的基础 传统的信号与系统偏硬件 现代
  • 写五个以科技为主题的html页面,要求用css实现,请写出实现代码

    在此基础上 我们可以创建五个以科技为主题的 HTML 页面 并使用 CSS 来实现设计 科技新闻页面 HTML 代码
  • Fibonacci数列(斐波那契数列)

    斐波那契数列 Fibonacci sequence 又称黄金分割数列 因数学家列昂纳多 斐波那契 Leonardoda Fibonacci 以兔子繁殖为例子而引入 故又称为 兔子数列 指的是这样一个数列 1 1 2 3 5 8 13 21
  • TCP的超时时间间隔的简单理解

    网上查了许多资料 都比较抽象 自我理解记录篇 本文适用于查了许多资料 但觉得还是比较抽象 有基础相关知识的人阅读 样本RTT SampleRTT EstimatedRTT 1 EstimatedRTT aSampleRTT 参考值 0 12
  • JS--变量

    变量在使用时分为两步 声明变量 赋值 1 声明变量 var age 声明一个名称为age的变量 var是一个JS关键词 用来声明变量 使用该关键词声明变量后 计算机会 自动为变量分配内存空间 不需要程序员管 age是程序员定义的变量名 我们
  • 《C++ primer plus》精炼(OOP部分)——对象和类(4)

    学习是人类进步的阶梯 也是个人成功的基石 罗伯特 肯尼迪 文章目录 友元函数 利用友元函数重载 lt lt 运算符 重载部分示例 矢量类 友元函数 先看看在上一章中我们作为例子的代码 class Student string name in
  • QComboBox 设置代理组件

    背景 QComboBox 是Qt中比较常用的一个输入控件 用于实现一个文本下拉列表 在简单的应用场景中 QComboBox 完全可以满足要求 但是项目实践过程中会遇到以下问题 需要实现比较复杂的下拉列表 比如同时显示图标 文字 按钮等 QC
  • CUDA学习(九)想好好解释一下利用shared memory去做matrixMul

    代码来自CUDA Samples v9 1 0 Simple matrixMul 主要注释了matrixMulCUDA C A B 它的理念是把矩阵分成小块 每个线程利用两层循环 大循环在迭代subMatrix 小循环则是迭代每个小subM
  • 【Android UI设计与开发】第08期:底部菜单栏(三)Fragment+FragmentTabHost实现仿新浪微博底部菜单栏

    PS 这是转载CSDN作者yangyu20121224的文章 真的非常不错 它主要讲述如何通过Fragment碎片实现点击TabHost切换页面 可惜作者很长时间没有更新了 他写的那系列文章都很实用 以后在做Android布局时会用到该篇文
  • Reading and Writing Images_OpenCV 3.0.0-dev documentation

    OpenCV 3 0 0 dev documentation OpenCV API Reference imgcodecs Image file reading and writing https docs opencv org 3 0 b
  • Python While 循环语句

    Python 编程中 while 语句用于循环执行程序 即在某条件下 循环执行某段程序 以处理需要重复处理的相同任务 其基本形式为 while 判断条件 condition 执行语句 statements 执行语句可以是单个语句或语句块 判
  • iOS开发抓包工具之Charles使用

    在iOS开发过程中 抓包是常见的必备技能之一 这里我们主要介绍一下Mac下的抓包利器Charles 文中版本 4 0 1 它可以非常方便的抓取Http Https请求 从而提高我们的开发效率 本文中不提供破解版安装使用说明 网上一大堆 建议