抓包:Fiddler教程

抓WebSocket

随便打开一个虎牙直播页面(如https://www.huya.com/kaerlol)可以看到里面有WebSocket数据包。
在这里插入图片描述
如果要用Fiddler抓到这些数据包,需要编辑Fiddler Script

class Handlers
{
    //class Handlers中加入这段函数
    static function OnWebSocketMessage(oMsg: WebSocketMessage) {
        FiddlerApplication.Log.LogString(oMsg.ToString()); // Log Message to the LOG tab
    }
    ...
}

修改完后即可抓到WebSocket(类型101)了,双击会话即可查看详细。
在这里插入图片描述
 

抓Android App

Fiddler菜单栏打开 Tools–>Options… 配置HTTPS:
在这里插入图片描述
配置远程连接,完成之后,一定要重启Fiddler
在这里插入图片描述
查看本机IP(cmd输入ipconfig):
在这里插入图片描述
给手机配置代理,填写上面得到的IP和Fiddler配置中的端口号:
在这里插入图片描述

Android 7.0之前

安卓浏览器打开代理配置的IP和端口页面(一定要在打开Fiddler的时候,否则无法访问),下载安装证书,安装完后应该会要求设置设备锁屏,然后就可以抓到手机上的HTTPS了。
在这里插入图片描述

Android 7.0之后

由于Android 7.0之后将用户证书和系统证书“区别对待”,用户证书只能用于代理浏览器的流量,而应用不会信任这些证书。但要把用户证书变为系统证书,首先必须保证是ROOT设备。然后Fiddler导出证书到桌面。
在这里插入图片描述
导出的证书文件名为自命名,但Android中需要的是“哈希值.N”(同证书的第1张,则N=0)的文件命名规则。计算哈希值需要安装OpenSSL,参考下面文章:

命令行执行以下代码:

//XXX是你导出的证书文件
openssl x509 -inform DER -subject_hash_old -in 'XXX' 

我在Ubuntu的计算结果如下,所以把证书重命名为“269953fb.0”。
在这里插入图片描述
将文件放入设备“/system/etc/security/cacerts/”系统证书目录(用户证书目录为“/data/misc/user/0/cacerts-added”),再给个权限。如果用户证书中也有安装,记得删除。

adb shell
# su
# mount -o remount,rw /system
# cp /sdcard/269953fb.0 /system/etc/security/cacerts/
# cd /system/etc/security/cacerts/
# chmod 644 269953fb.0

在这里插入图片描述
重启设备,可以看到Fiddler证书已经在系统证书列了。此时在应用中也能正常抓取HTTPS了。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值