大家好,我是码农星期八,人称法外狂徒张三。

为什么要说使用Charles+Postern

在实际抓手机App包场景中,有很多种方案,经典的就是Fiddler,但是Fiddler会有一个问题,如果App设置了不走代理这个选项,那Fiddler就不行了。

为什么Charles+Postern可以呢?

是因为Charles就没有直接监听到App,Charles是监听到了Postern上,Postern就是一个vpn,所以App设置不走代理也没用,Postern照样能监听到,然后Postern再转发到Charles上,这样就完成了抓包。

但是双向验证除外,双向验证Charles需要添加证书,后面再说。

当然,还有更好的方案,r0capture hook抓包了解一下?

我的环境

pixel 2 Android 8版本(已root)
Magisk 23.0版本
Xposed 3.1.5版本

Charles配置

Charles环境要求

  • JDK
  • 启用超级管理员
  • 关闭防火墙

下载

Charles下载地址:

https://www.charlesproxy.com/download/

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_安装包

安装

下一步->下一步即可

安装成功打开

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_安装包_02

激活

注册码生成地址:

https://www.zzzmode.com/mytools/charles/

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_Python网络爬虫_03

激活Charles

在​​Help->Registered​​输入key和生成的激活码即可

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_抓包_04

设置代理

点击​​Porxy Settings​

注意:此时我的​​Windows Proxy​​是去掉对勾的,表示不抓PC端。

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_抓包_05

设置监听端口

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_推送_06

配置SSL代理

点击​​SSL Proxying Settings​

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_抓包_07

添加代理,​​*.*​​即可

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_推送_08

到现在为止,Clarles就设置完毕。

Postern

Postern简介

Postern并不是抓包工具,它是一个代理工具。

它可以将http请求转为socket,并且包转发到Charles上,这样就可以抓到更多的包。

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_安装包_09

配置代理规则

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_抓包_10

添加代理服务器

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_网络爬虫_11# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_安装包_12

留下一个选项就行,其它的删掉即可

配置规则

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_网络爬虫_13

添加规则

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_抓包_14# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_Python网络爬虫_15

打开/关闭Postern

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_抓包_16

如果Charles有提示出东西,一定要点击Allow

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_网络爬虫_17

然后就可以愉快的抓包了

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_推送_18

但是此时只能抓http的包,要想抓hppts的包,还需要设置证书才行。

配置证书

保存证书到指定位置

点击​​Save Charles Root Certi...​

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_Python网络爬虫_19

选择一个路径保存

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_Python网络爬虫_20

证书推送到手机上

将保存的证书推送到手机上

adb push C:\Users\Ti\Downloads\1.pem /sdcard/1.pem

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_Python网络爬虫_21

成功推送到手机上

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_安装包_22

手机端安装证书

点击从存储设备安装证书

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_安装包_23

点击证书,安装

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_网络爬虫_24

证书名字随便写

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_Python网络爬虫_25

安装好之后是可以在信任的凭据中看到的

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_安装包_26

查看用户证书

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_推送_27

证书存放目录

系统证书路径 /etc/security/cacerts
用户证书路径 /data/misc/user/0/cacerts-added

虽然此时证书已经安装完成,但是可能对APP抓https还是失败的。

因为Android7以后,只信任系统证书,所以还需要将用户证书移动成系统证书。

移动证书

这里使用Magisk的​​Move Certificates​​模块来安装证书

直接安装即可

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_抓包_28

然后重启手机,你就会发现证书移动成功

现在,到现在就配置成功了,打开Postern,就可以开心的抓https啦!

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_网络爬虫_29

Charles和Fiddler的比较

Fiddler虽然也可以完成对手机的抓包,但是如果App设置了不走代理,那Fiddler就失败了。

并且Fiddler需要修改手动wifi的代理,但是Charles就不需要,只需要配置好Postern和Charles的连接就好,并且可以对绝大部分的App进行抓包,不使用代理时,直接关闭Postern即可!

总结

目前来说,Fiddler和Charles都是很流行的,但是相对来说,还是Charles+Postern适用范围更广一些,并且数据更好看一点!

最后需要Charles和Postern安装包的小伙伴,可以在公众号后台回复关键字“Charles安装包”进行获取。

仁者见智呗!如果在操作过程中有任何问题,记得下面留言,我们看到会第一时间解决问题。

越努力,越幸运。我是码农星期八,如果觉得还不错,记得动手点赞一下哈,感谢你的观看。

# yyds干货盘点 # 手把手教你进行Python网络爬虫中的Charles+Postern抓包_安装包_30

    小伙伴们,快快用实践一下吧!如果在学习过程中,有遇到任何问题,欢迎加我好友,我拉你进Python学习交流群共同探讨学习。