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

dfd73580-7718-eb11-8da9-e4434bdf6706.png

#### 1.Charles

e0d73580-7718-eb11-8da9-e4434bdf6706.png

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

2.Charles 使用与配置

  • 2.1 抓取HTTP请求

e3d73580-7718-eb11-8da9-e4434bdf6706.png
打开Charles,打开Charlels主题菜单,找到Proxy
勾选上macOS Proxy就可以了
在macOS Proxy 的下方有Proxy Settings选项,点击打开

e5d73580-7718-eb11-8da9-e4434bdf6706.png
在Port出输入8888,并且勾选下方Enable transparent HTTP proxying 选项,点击OK即可.
  • 2.2 找到我们mac的ip,以方便在mac上抓取移动端app的数据包 三种种方式找到我们的mac ip地址 第一种:

e9d73580-7718-eb11-8da9-e4434bdf6706.png
(设置中找到网络即可看到mac ip地址)

第二种:

ead73580-7718-eb11-8da9-e4434bdf6706.png

edd73580-7718-eb11-8da9-e4434bdf6706.png
(在Charles菜单栏中,找到Help-->Local IP Address,打开即可找到ip地址)

第三种:

efd73580-7718-eb11-8da9-e4434bdf6706.png
(终端-->ifconfig)
  • 2.3 手机配置

f3d73580-7718-eb11-8da9-e4434bdf6706.png
  • 2.4 然后就可以愉快的抓取http包了.

3.抓取https包

  • Charles可以抓取http协议的包,也能抓取https协议的包.
  • 由于https是经过加密的,抓取的包以密文方式展现的
  • 配置Charles的SSL可以以明文查看https协议传输的内容

f5d73580-7718-eb11-8da9-e4434bdf6706.png
菜单栏中找到Help-->SSL Proxying -->>Install Charies Root Certificate!

f6d73580-7718-eb11-8da9-e4434bdf6706.png
在钥匙串中,找到Charles Proxy 证书,这个是我信任后的证书
安装的后的证书是不被信任的.

f8d73580-7718-eb11-8da9-e4434bdf6706.png
我们选中证书,右键,显示简介就可以出现上图,我们信任证书即可
然后输入mac密码确认.
证书到这里已经完成安装
  • 配置SSL

fad73580-7718-eb11-8da9-e4434bdf6706.png
菜单栏--> Proxy --> SSL Proxying Settings

fcd73580-7718-eb11-8da9-e4434bdf6706.png
Host: * 
Port: 443
点击ok即可完成配置
  • 好了,这里就可以以明文的方式查看https传输的详情了.

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

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

fdd73580-7718-eb11-8da9-e4434bdf6706.png
菜单栏找到-->Tools-->Rewrite

ffd73580-7718-eb11-8da9-e4434bdf6706.png
开启Enable Rewrite ,添加charset

00d83580-7718-eb11-8da9-e4434bdf6706.png
Name: UTF-8-Set
点击Add,添加内容

02d83580-7718-eb11-8da9-e4434bdf6706.png
红框出添加或者勾选,点击ok即可完成配置.

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

5. AppStore 数据包抓取

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

04d83580-7718-eb11-8da9-e4434bdf6706.png

07d83580-7718-eb11-8da9-e4434bdf6706.png

08d83580-7718-eb11-8da9-e4434bdf6706.png

我们到这一步都还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

0ad83580-7718-eb11-8da9-e4434bdf6706.png

0cd83580-7718-eb11-8da9-e4434bdf6706.png
  • 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

安装中遇到的问题:

0ed83580-7718-eb11-8da9-e4434bdf6706.png
主要cydia没有安装插件 preferenceloader
在cydia中找到该插件,并安装.就可以解决问题.

0fd83580-7718-eb11-8da9-e4434bdf6706.png

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

11d83580-7718-eb11-8da9-e4434bdf6706.png

12d83580-7718-eb11-8da9-e4434bdf6706.png
  • 5.这一步完成后,应该可以使用了.虽然禁止了SSL Pinning,我们登录的时候仍然是报服务器请求错误.
Why SSL Kill Switch didn’t work

I 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/itunesstored
  0   432   404   0   0:00.00 ttys000    0:00.01 grep itunesstored

iPad-Mini:~ root# kill -s KILL 170

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

13d83580-7718-eb11-8da9-e4434bdf6706.png

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

6.总结

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

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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Charles 是一款网络抓包工具,它可以让你查看应用程序和网站之间的通信数据,从而帮助你进行调试和分析。以下是使用 Charles 的详细步骤: 1. 下载并安装 Charles:在官方网站上下载 Charles 并按照提示进行安装。 2. 配置 Charles:打开 Charles,然后在菜单栏中选择“Proxy” -> “Proxy Settings”,在弹出的窗口中选择“HTTP”选项卡,将“Port”设置为 8888,并勾选“Enable transparent HTTP proxying”和“Enable macOS Proxy”。 3. 配置移动设备:如果你想抓取移动设备的数据包,需要将移动设备的网络代理设置为 Charles 的 IP 地址和端口号(默认为 8888)。具体方法请查看 Charles 官方文档。 4. 开始抓包:在 Charles 中点击“Record”按钮,然后使用你的应用程序或浏览器访问网站,在 Charles 中就可以看到通信数据了。 5. 查看数据:在 Charles 中可以看到所有的请求和响应数据。你可以选择任何一个请求或响应来查看其详细信息,包括请求头、响应头、请求体和响应体等。 6. 修改数据:如果你需要修改某个请求的数据,可以右键点击请求并选择“Edit”,然后进行修改即可。 7. 断点调试:如果你需要在某个请求或响应时暂停抓包以进行调试,可以在 Charles 中右键点击该请求或响应并选择“Breakpoints” -> “Add”,然后在弹出的窗口中勾选“Request”或“Response”,并设置相应的条件即可。 总之,Charles 是一款非常方便的网络抓包工具,可以帮助你快速定位和解决各种网络问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值