#### 1.Charles

Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看他们的机器和Internet之间的所有HTTP和SSL / HTTPS通信。这包括请求、响应和HTTP头(包含cookie和缓存信息)。

2.Charles 使用与配置

  • 2.1 抓取HTTP请求
打开Charles,打开Charlels主题菜单,找到Proxy
勾选上macOS Proxy就可以了
在macOS Proxy 的下方有Proxy Settings选项,点击打开

在Port出输入8888,并且勾选下方Enable transparent HTTP proxying 选项,点击OK即可.

  • 2.2 找到我们mac的ip,以方便在mac上抓取移动端app的数据包 三种种方式找到我们的mac ip地址 第一种:
(设置中找到网络即可看到mac ip地址)

第二种:

(在Charles菜单栏中,找到Help-->Local IP Address,打开即可找到ip地址)

第三种:

(终端-->ifconfig)

  • 2.3 手机配置
  • 2.4 然后就可以愉快的抓取http包了.

3.抓取https包

  • Charles可以抓取http协议的包,也能抓取https协议的包.
  • 由于https是经过加密的,抓取的包以密文方式展现的
  • 配置Charles的SSL可以以明文查看https协议传输的内容
菜单栏中找到Help-->SSL Proxying -->>Install Charies Root Certificate!

在钥匙串中,找到Charles Proxy 证书,这个是我信任后的证书
安装的后的证书是不被信任的.

我们选中证书,右键,显示简介就可以出现上图,我们信任证书即可
然后输入mac密码确认.
证书到这里已经完成安装

  • 配置SSL
菜单栏--> Proxy --> SSL Proxying Settings

Host: *
Port: 443
点击ok即可完成配置

  • 好了,这里就可以以明文的方式查看https传输的详情了.

4.Charles抓包工具的中文乱码解决办法

装好了,打开Charles后,发现抓到的包content都是乱码. 下面有个解决办法,有助于大家参考,解决了问题.

菜单栏找到-->Tools-->Rewrite

开启Enable Rewrite ,添加charset

Name: UTF-8-Set
点击Add,添加内容

红框出添加或者勾选,点击ok即可完成配置.

我们的问题就可以解决了.

5. AppStore 数据包抓取

如果我们所有的配置都完成了, 我们是不是就可以愉快的抓包了. 当时的心情是开心的. 然而问题就来了, 到底是什么问题呢? 这么神秘吗? 这个问题算是神秘.

我们到这一步都还OK, 问题出现了, 当我们把密码和账号输入后, 点击登录按钮 提示连接apple 服务器 错误 一万个不开心. 当时AppStore 也打不开了,显示连接不到apple服务器. 其他软件可以正常抓取数据. 当时猜测是不是苹果做了反抓取机制.

后来,找了原因:越狱手机要禁止SSL Pinning证书, AppStore使用的是SSL Pinnign(证书锁定), 所以没有办法通过抓包工具直接抓到包. 因此想抓到包,必须通过安装插件来禁止SSL Pinning. 这是目前最有效的解决方法了,不知道有没有用. 抱着尝试的目的开始操作.

  1. 我们首先准备越狱机(ios9.3.1的系统,已经越狱)
  • 2.我们需要下载( SSL KillSwitch 2) 地址: https://github.com/nabla-c0d3/ssl-kill-switch2
  • 3.越狱机都有cydia软件,一定要装上插件OpenSSH 这里就不介绍如何安装了,请看我写的逆向工具集(二),地址:https://www.jianshu.com/p/3157223a836b ,有讲到OpenSSH.
  • 4.我们连接手机终端,把deb包传到越狱手机
scp com.nablac0d3.sslkillswitch2_0.12.deb  root@host:var/root/

安装sslkillswitch

dpkg -i  com.nablac0d3.sslkillswitch2_0.12.deb

安装中遇到的问题:

主要cydia没有安装插件 preferenceloader
在cydia中找到该插件,并安装.就可以解决问题.

安装完成后,手机会立即重启,重启后我们进入设置,最下面会多了一个SSL Kill Switch2

  • 5.这一步完成后,应该可以使用了.虽然禁止了SSL Pinning,我们登录的时候仍然是报服务器请求错误.
Why SSL Kill Switch didn’t workI initially thought the issue to be that the strategy used by the SSL Kill
Switchto disable certificate validation somehow wasn’t enough to
bypass *itunesstored*’s certificate pinning. However, it turns out that the SSL
Kill Switch was just not being injected into the *itunesstored* process at all,
for a couple reasons:The itunesstored process is started as a daemon by launchd early during
the device’s boot sequence, before MobileSubstrate and MobileLoader get
started. Therefore, none of the MobileSubstrate tweaks installed on the
device, including the SSL Kill Switch, get injected into this process.
The SSL Kill Switch had a MobileLoader filter so that the code disabling
certificate validation would only be loaded into apps linking the UIKit bundle
(ie. applications with a user interface). This was initially done to restrict the
effect of the SSL Kill Switch to App Store apps only.
However, itunesstored is a daemon that doesn’t have a user interface,
hence the filter prevented MobileLoader from injecting the SSL Kill Switch
into the process.
After figuring this out, getting *itunesstored* to stop validating SSL
certificates was very straightforward. First of all, make sure you’re using the
latest version of the SSL Kill Switch(at least v0.5). Then, all you need to do is
kill the itunesstored process:
iPad-Mini:~ root# ps -ef | grep itunesstored
501   170     1   0   0:00.00 ??         0:01.95 /System/Library/PrivateFrameworks/iTunesStore.framework/Support/itunesstored0   432   404   0   0:00.00 ttys000    0:00.01 grep itunesstorediPad-Mini:~ root# kill -s KILL 170

原因是tunesstored进程在早期启动时作为守护进程启动 该设备的引导序列,在MobileSubstrate和MobileLoader获得之前开始了. 因为SSL Kill Switch作为MobileSubstrate的插件,没有办法注入到进程itunesstored中. 如何解决: 必须杀掉itunesstored进程,itunesstored作为守护进程会自启,自启时SSL Kill Switch 就注入了itunesstored进程,如何操作呢? 其实上面文章也给出了操作命令. 我们自己也操作一下.

kill进程后,我们重启App Store,就可以愉快的抓包了. 我当时第一次操作后,并没有任何结果. 我自己开始觉得这个方法没有解决问题. 后来,我尝试关机重启, 然后再操作一次kill命令, 最后,完全正常了. 如果大家也是这样,可以重启手机多次,多操作几次. 如果没有其他的解决办法,这就是唯一的好方法.

6.总结

因为最近要抓取AppStore的数据包, 也就研究了一下Charles, 刚接触就遇到了这些问题, 所以把自己的解决办法告诉大家, 希望大家少走弯路, 节省更多的时间.

本文章简单的介绍了, charles 的配置及使用, AppStore的数据报获取. 还有很多charles的功能待你去研究. 这篇文章希望能够能帮到你. 简书地址:https://www.jianshu.com/u/e1ee7a9783c8 更多文章请持续关注.

如何配置charles_抓包工具--charles(青花瓷)及获取AppStore数据包相关推荐

  1. charles 中文_抓包工具--charles(青花瓷)及获取AppStore数据包

    #### 1.Charles Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看他们的机器和Internet之间的所有HTTP和SSL / HTTPS通信.这包括请求.响 ...

  2. charles抓app包教程_抓包工具--charles(青花瓷)及获取AppStore数据包

    #### 1.Charles Charles是一个HTTP代理/ HTTP监视器/反向代理,使开发人员能够查看他们的机器和Internet之间的所有HTTP和SSL / HTTPS通信.这包括请求.响 ...

  3. 抓包工具Charles(青花瓷)使用教程

    一.什么是Charles? Charles,因产品Icon为青花瓷造型,俗称青花瓷.主要是用来抓取网络流量包,可以分析产生的网络请求.可以配置代理来抓取手机流量包数据. 二.下载安装: 1.官方渠道, ...

  4. Python3网络爬虫开发实战,抓包工具 Charles 的使用

    11.1 Charles 的使用 Charles 是一个网络抓包工具,我们可以用它来做 App 的抓包分析,得到 App 运行过程中发生的所有网络请求和响应内容,这就和 Web 端浏览器的开发者工具 ...

  5. 【爬虫】网页抓包工具--Charles的使用教程

    抓包工具Charles的使用教程 参考:https://zhubangbang.com/charlesproxy 如果您是您一次使用Charles,可能对下面的感兴趣. Charles破解版免费下载和 ...

  6. 网络抓包工具Charles的介绍与使用

    在复杂的App开发过程中,我们会涉及各种复杂的网络操作,各种API的调用和数据接收.如果我们只是通过控制台来查看网络的输入输出,就会非常麻烦.在Mac上有一款非常优秀的网络抓包工具--Charles, ...

  7. 安利一个Mac下好用的抓包工具-Charles

    Charles:让天底下没有难抓的包. 前言 今天给大家推荐一个我所使用过的抓包工具中最好用的抓包工具-Charles(音译:查尔斯),它可以抓各端发起的网络请求,我主要用来抓移动设备上的请求,上次小 ...

  8. 抓包工具charles下载安装使用

    抓包工具charles下载安装(MAC版) 什么是charles? charles是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles ...

  9. 抓包工具 Charles使用教程

    1.抓包工具 Charles Charles下载地址 转载:使用教程 参考文献: Charles使用教程及Https乱码解决 Charles手机安装证书 Charles官网 我们先开宗明义,把问题解决 ...

最新文章

  1. 区块链技术如何改变我们对DNA的看法
  2. python 使用socks 爬虫_python爬虫基础之urllib的使用
  3. TinyMCE 4.0b1 发布,全新设计和 API
  4. 自定义按键_DNF手游:策划宣布新增自定义按键布局,期待手游新版本的到来
  5. Minimal coverage (贪心,最小覆盖)
  6. .net Kafka.Client多个Consumer Group对Topic消费不能完全覆盖研究总结(一)
  7. linux僵尸进程产生的原因以及如何避免产生僵尸进程defunct
  8. Linux tp5伪静态设置
  9. border属性 php,如何通过CSS的border属性为图片设置边框效果
  10. 小白设计模式:责任链模式
  11. 能安装python库的app_APP自动化之安装Python(类库)环境
  12. RenderSettings 渲染设置
  13. vue实现滑块拖拽校验
  14. 一次完整的 RPC 流程
  15. 通过实例彻底理解闭包
  16. 本地虚拟机搭建k8s集群完整篇
  17. 解决SQLServer复制到Excel中内容换行问题
  18. pat乙级1026题解
  19. 【知识图谱】构建射雕三部曲人物关系
  20. 数据结构——图的邻接矩阵实现

热门文章

  1. pyspark intersection代码示例
  2. golang跳转控制语句:goto语句示例
  3. 基于rancher在线安装k8s集群
  4. Python Django 可变参数代码示例
  5. jvm最大内存限制多少?
  6. Dubbo 2.7三大特性详解
  7. com.google.gson.stream.MalformedJsonException: Use JsonReader.setLenient(true) to accept malformed
  8. java代码删除文件夹_删除文件夹的java类
  9. php 代码修改后 重新实例化_从匿名函数到PHP设计模式之容器模式
  10. mysql团队开发工具_最棒的10款MySQL GUI工具