一、Charles工具简介
Charles(简称:尿壶、恰鄂斯)是一个HTTP代理服务器,HTTP监视器,反转代理服务器,当浏览器连接Charles的代理访问互联网时,Charles可以监控浏览器发送和接收的所有数据。它允许一个开发者查看所有连接互联网的HTTP通信,这些包括request, response和HTTP headers (包含cookies与caching信息)。
序号 | 工具名称 | 百度网盘下载 | 官方下载 |
---|---|---|---|
A01 | Charles | 百度网盘 | https://charlesapp.cn/ |
A02 | OpenSSL | 百度网盘 | https://www.openssl.org/source/ |
A03 | AdbTool | 百度网盘 | SDK官网 |
二、PC证书安装
- 安装好Charles工具后并运行,按照下面的方法安装。
(1)、运行证书安装
(2)、PC安装证书
(3)、将证书安装到本地计算机
(4)、保存证书(2个选项都可以)
(5)、完成证书安装
(6)、点击 Proxy ==>> Windows Proxy开启代理即可抓包
三、安卓模拟器安装
- 安装好Charles工具后并运行,按照下面的方法安装,优先按照自动安装进行安装,自动安装后没有效果再再使用手动安装的方法,我们这里以网易木木为实例。
1、自动安装证书
(1)、首先电脑要安装证书,详情见PC证书安装方法。
(2)、开启网易木木模拟器的超级管理员权限
(3)、设置Charles的PC端HTTP协议或者websocket协议代理。
(4)、移动端配置网络代理服务,抓http就配置http代理端口,抓websocket就配置websocket代理端口。
(5)、移动端游览器访问:chls.pro/ssl,下载证书傻瓜式安装证书。
2、手动安装证书
(1)、首先我们要下载证书保存到本地并命名Charles.pem保存样式。
(2)、安装openssl工具并填加环境变量,按照下面方法检查是否按照成功。
(3)、使用openssl工具签发证书。
#在CMD命令行执行以下命令
C:\Users\admin>d:
D:\>cd D:\BBBBB
D:\BBBBB>openssl x509 -subject_hash_old -in Charles.pem
#执行命令后结果如下所示,记住“48243012”字符,很重要。
48243012
-----BEGIN CERTIFICATE-----
MIIFNjCCBB6gAwIBAgIGAYece1LPMA0GCSqGSIb3DQEBCwUAMIGfMTAwLgYDVQQD
DCdDaGFybGVzIFByb3h5IENBICgyMCBBcHIgMjAyMywgTVlQQy1NVSkxJTAjBgNV
BAsMHGh0dHBzOi8vY2hhcmxlc3Byb3h5LmNvbS9zc2wxETAPBgNVBAoMCFhLNzIg
#省略一万字
UYdCHtcY4rk9brFXtuUOHPbE0X+HrEFMTsHSocYqRxYjVq/kTEzrn3GkrcRutDWd
9bW3d5HWJLmhqk/8bV49rzCtX+YOdEP8GWrrFoi/6KNIe2HS3fR54W14
-----END CERTIFICATE-----
(4)、将Charles.pem文件重新命令为48243012.0,文件名称是我们证书签发的时候给的。
(5)、设置模拟器的配置中心,打开网易mumu的root权限。
(6)、使用Adb按照如下所示安装证书。
#在cmd命令连接网易木木模拟器
D:\BBBBB>adb connect 127.0.0.1:7555
connected to 127.0.0.1:7555
#进入模拟器的超级管理系统
D:\BBBBB>adb root
#进入安卓的内核系统
D:\BBBBB>adb shell
#挂载Linux系统磁盘并退出Linux系统
root@MuMu:/ # mount -o remount,rw /system
root@MuMu:/ # exit
#将文件导入模拟器系统磁盘中
D:\BBBBB>adb push D:\BBBBB\48243012.0 /etc/security/cacerts/
D:\BBBBB\48243012.0: 1 file pushed, 0 skipped. 0.8 MB/s (1888 bytes in 0.002s)
#再次进入Linux系统中查看导入证书是否存在。
D:\BBBBB>adb shell
root@MuMu:/ # cd /etc/security/cacerts/
root@MuMu:/etc/security/cacerts # ls 48243012.0
48243012.0
(7)、点击 Proxy ==>> Windows Proxy开启代理即可抓包
四、抓包数据乱码问题解决
1、 在charls的安装目录下,修改配置文件(D:\Charles\Charles.ini)的值(新增vmarg.5和vmarg.6)。
working.directory=.
classpath.1=lib/charles.jar
main.class=com.xk72.charles.gui.MainWithClassLoader
vm.version.min=11
vm.location=jdk\bin\server\jvm.dll
vmarg.1=-Dsun.java2d.d3d=false
vmarg.2=-Djava.net.preferIPv4Stack=false
vmarg.3=-Djava.net.preferIPv6Addresses=true
vmarg.4=-Djava.library.path=lib
vmarg.5=-Dfile.encoding=UTF-8
vmarg.6=-Dfile.encoding=UTF-8
dde.enabled=true
dde.class=com.xk72.charles.win32.Win32DDEManager
dde.server.name=Charles
dde.topic=System
single.instance=dde
log.level=warning
[ErrorMessages]
java.not.found=The bundled Java installation was not found. Please uninstall and reinstall Charles.
java.failed=The bundled Java installation is broken. Please uninstall and reinstall Charles.
2、点击Proxy ==>> SSL proxy setting弹窗页码修改配置
五、手机真机安装证书
1、首先要给电脑安装证书
2、接着点击Proxy->SSL Proxy Settings,设置SSL Proxying
3、接着需要在手机端安装证书,点击Charles上的Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser
4、手机wifi连接charls代理,主机输入安装pc的ip,端口输入charls的proxy settings中设置的port
5、接着在手机浏览器上访问charlesproxy.com/getssl这个地址安装证书