更多内容在专栏(iOS&macOS 逆向之从零到精通 - 小专栏)
https://xiaozhuanlan.com/cydia
抓包工具Charles
前言
- 无论正向开发,还是逆向开发,抓包都是必备工具。本文讲抓包工具Charles的使用。
安装
- 官网,可以下载免费试用版本,或者付费购买。
![v2-368d69bbebdda0c08dcf3138aa188f02_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-368d69bbebdda0c08dcf3138aa188f02_b.jpg)
- 下载完成之后,具体安装过程就不赘述了。
界面
- 界面如下,左侧是网络请求,右侧是具体信息,其中提供了断点,弱网等功能
![v2-55034e3d5e2788b3d1e0bc44ca539b1e_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-55034e3d5e2788b3d1e0bc44ca539b1e_b.jpg)
抓取天气预报接口
- 我们打开网站 https://weather.com/zh-CN/weather/today/l/f6de1330f517758fbcfe51946263fb8485477d27f5ab1e3f2d9f88b0e823f544 来查看北京的天气
![v2-b4fbe026f0a97ef030dffb3bcb2f963a_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic3.zhimg.com/v2-b4fbe026f0a97ef030dffb3bcb2f963a_b.jpg)
- 查看Charles抓的包
![v2-a95abbff4d9650be1b0c4a8c53f05745_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-a95abbff4d9650be1b0c4a8c53f05745_b.jpg)
像我们如果开发小程序或者独立App的时候,一些天气Api是需要付费的,我们就可以通过抓包找到相关返回数据,来解析完使用这些数据。
https乱码问题
- 有时候我们看到抓的有些包是乱码的,或者提示unkonwn ,那是因为https协议需要安全认证
![v2-4109f6f49da0ad05e299ae42b2865cbf_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-4109f6f49da0ad05e299ae42b2865cbf_b.jpg)
![v2-7126a0799bb1f0c845446698fb6924ec_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-7126a0799bb1f0c845446698fb6924ec_b.jpg)
- 安全认证:点击Help->SSL Proxying->Install Charles Root Certificate
- 然后去钥匙串中点击信任
![v2-924804224a688520ca61662d629ec657_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-924804224a688520ca61662d629ec657_b.jpg)
- 此时依然无法解析https的请求。需要设置SSL Proxying Settings,可以单独配置某一个url,当然为了方便最好配置成通用的,如下所示
![v2-ba6ca00eaa0238a595950f673cd206c8_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-ba6ca00eaa0238a595950f673cd206c8_b.jpg)
此时就可以正常解析https请求了
断点修改B站数据
- 点击 Proxy->Enable Breakpoints,或者直接选择断点图标,开启断点功能
- 右键选择BreakPoints
![v2-8549d923b759960616f5129baec35e14_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-8549d923b759960616f5129baec35e14_b.jpg)
- 重新刷新B站,讲一个标题
Sour Candy'中的采样竟然不是郭老师而是Gaga本人!!!
改为逆向小专栏https://xiaozhuanlan.com/cydia
![v2-acdbff6e412d3f3af0f7359ced81934c_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-acdbff6e412d3f3af0f7359ced81934c_b.jpg)
- 跳过断点,执行完之后,可以看到确实被修改成功了。
![v2-bde86c7a275b285ff21fa15116058eb7_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-bde86c7a275b285ff21fa15116058eb7_b.jpg)
- 对于请求参数的修改
- 右键Repeat再次请求一次
- 右键Compose 可以修改参数,然后点击Execute执行,就执行我们修改过的请求
弱网测试
- 点击proxy ->Throttle Settings进行弱网设置
- 我们可以模拟弱网进行测试
![v2-3cd3583f9d5fa8044ac56b02898e71f7_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-3cd3583f9d5fa8044ac56b02898e71f7_b.jpg)
抓手机包
- 点击:Help->SSL Proxyig ->Install Charless Root Certificate on a Mobile Device or Romete Browser 如下图所示
![v2-12f78c0c87f7aee5ebfb0fdc032d2b2c_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-12f78c0c87f7aee5ebfb0fdc032d2b2c_b.jpg)
- 打开手机的WiFi设置,配置代理为手动,改为Charles提示的ip和端口
192.168.1.6:8888
![v2-166ef0e842ccf7ba9b62c6fef9d6c3f0_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-166ef0e842ccf7ba9b62c6fef9d6c3f0_b.jpg)
- 打开手机浏览器输入
chls.pro/ssl
- 此时Mac上会有弹窗是否允许,我们选择允许
- 手机上提示是否下载配置描述文件,我们选择允许
![v2-fc1d216aa6bbdf6efc3b4d313e17fb18_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic1.zhimg.com/v2-fc1d216aa6bbdf6efc3b4d313e17fb18_b.jpg)
- 去手机的通用->关于本机->证书信任设置,信任改证书
- 操作手机,就发现Charles已经抓取了手机上的网络请求
映射本地资源
- 打开博客网站:https://ityongzhen.github.io/ ,如下所示
![v2-fca6fa20a95008b3690f8a914f2175d1_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-fca6fa20a95008b3690f8a914f2175d1_b.jpg)
- Charles抓包,找到 url ,并点击Save response ,保存到本地
- 然后把保存的本地文件中
首页
,关于
等加上eagle
![v2-0915a8c347d27ae54d5802efbffdca3f_b.jpg](http://img-03.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic4.zhimg.com/v2-0915a8c347d27ae54d5802efbffdca3f_b.jpg)
- 点击Tools ->map local,在Host中填写需要映射的URL ,并选择本地文件
![v2-17f1a0e2f839b17ec13c87230386f479_b.jpg](http://img-01.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-17f1a0e2f839b17ec13c87230386f479_b.jpg)
- 刷新浏览器可以看到数据改过了,看包体也是改过的数据,如下
![v2-79e751aacfdc91c95129fb06db969549_b.jpg](http://img-02.proxy.5ce.com/view/image?&type=2&guid=0699c390-0d2f-eb11-8da9-e4434bdf6706&url=https://pic2.zhimg.com/v2-79e751aacfdc91c95129fb06db969549_b.jpg)