Charles模拟器抓包,保姆教程。
0x01 前言:
经常看到一些小伙伴在抓包问题上纠结,所以把我自用的抓包方法分享给大家,简单方便,支持任何模拟器,可抓https、websocket、socket,也可使用wpe等工具进行封包。
0x02 工具:
Charles + Proxifier + openssl
抓包工具用burp suite或者 fiddler都是可以的
工具简单介绍
Charles 强大的抓包工具
Proxifier 对指定进程设置http或者socks4、5代理
openssl 这里我们用来获取证书哈希值
0x03 配置代理:
原理很简单,Charles开放代理,Proxifier对模拟器进程设置代理,下面以雷电模拟器为例
Charles设置
1、打开Charles->代理->代理设置
勾选
√启用SOCKS代理
√通过SOCKS启用HTTP代理
√包括默认HTTP端口(80 443 8080 8443)
其他http端口可以自行填写
2、Charles->代理->SSL代理设置->勾选启用SSL代理
可指定域名端口或者使用通配符
Proxifier设置
打开Proxifier->配置文件->代理服务器->添加
设置本机IP和端口
Proxifier->配置文件->代理规则->添加
填写雷电模拟器进程LdVBoxHeadless.exe和代理地址
这个时候我们就可以对模拟器内任何APP进行抓包了,但不支持https,接下来我们需要导入证书。
0x04 导入证书:
打开Charles->SSL代理->保存Charles根证书
这里我保存为charles.pem文件
安卓7.0及以上系统增加了系统证书验证,我们无法直接导入证书,需要手动将证书导入系统证书目录
使用openssl获取证书哈希
返回5a8126ff
将证书文件重新命名为5a8126ff.0
安卓要求证书文件用哈希和“.0”扩展名命名:[CertHash].0
使用ADB命令导入文件到系统证书目录
重启模拟器就可以对https进行抓包了
同样可以抓websocket和socket
已经测试多款模拟器全部可用,也可使用低版本的charles用wpe封包
经常看到一些小伙伴在抓包问题上纠结,所以把我自用的抓包方法分享给大家,简单方便,支持任何模拟器,可抓https、websocket、socket,也可使用wpe等工具进行封包。
0x02 工具:
Charles + Proxifier + openssl
抓包工具用burp suite或者 fiddler都是可以的
工具简单介绍
Charles 强大的抓包工具
Proxifier 对指定进程设置http或者socks4、5代理
openssl 这里我们用来获取证书哈希值
0x03 配置代理:
原理很简单,Charles开放代理,Proxifier对模拟器进程设置代理,下面以雷电模拟器为例
Charles设置
1、打开Charles->代理->代理设置
勾选
√启用SOCKS代理
√通过SOCKS启用HTTP代理
√包括默认HTTP端口(80 443 8080 8443)
其他http端口可以自行填写
2、Charles->代理->SSL代理设置->勾选启用SSL代理
可指定域名端口或者使用通配符
Proxifier设置
打开Proxifier->配置文件->代理服务器->添加
设置本机IP和端口
Proxifier->配置文件->代理规则->添加
填写雷电模拟器进程LdVBoxHeadless.exe和代理地址
这个时候我们就可以对模拟器内任何APP进行抓包了,但不支持https,接下来我们需要导入证书。
0x04 导入证书:
打开Charles->SSL代理->保存Charles根证书
这里我保存为charles.pem文件
安卓7.0及以上系统增加了系统证书验证,我们无法直接导入证书,需要手动将证书导入系统证书目录
使用openssl获取证书哈希
openssl x509 -subject_hash_old -in charles.pem
返回5a8126ff
将证书文件重新命名为5a8126ff.0
安卓要求证书文件用哈希和“.0”扩展名命名:[CertHash].0
使用ADB命令导入文件到系统证书目录
adb root
adb remount
adb push 5a8126ff.0 /system/etc/security/cacerts/
adb shell chmod 644 /system/etc/security/cacerts/5a8126ff.0
重启模拟器就可以对https进行抓包了
同样可以抓websocket和socket
已经测试多款模拟器全部可用,也可使用低版本的charles用wpe封包

浙公网安备 33010602011771号