关于fiddler抓包这个老六我也是服了,20年年初废了很久的时间查阅了很多资料才能抓到安卓7以上的包,后来忘记了记录,导致最近今年手机证书丢失老是抓不到包,今天n+1次配置成功了,记录一下这个坑
成功抓包截图
软件版本
目前使用的是官方英文版,之前尝试过很多个版本,包括什么新老汉化版本、其他大佬修改过的版本,现在想起来抓不到手机的包或许也软件版本不搭噶,重要的是证书生成插件?这还有待验证
开始配置
下载fiddler
可以百度搜索下载或下载我这里的
fiddler官方原版 , 提取密码:abeim
软件的基本设置
- 点击Tools-Options
- 切换到HTTPS选项卡,勾选Decpt HTTPS traffic(解密HTTPS数据),弹窗点击yes
- 之后的弹窗直接无脑yse
- 之后会提示证书安装成功
- 切换到Connections,勾选Allow remote computers to connect(捕捉远程请求,抓手机的包必须勾选),绿色框内的是代理端口,具体干嘛的后面再讲
至此初步配置完成,不要忘记了重启fiddler以让它生效
证书的安装
这一步说难也不难,说简单也不简单,很多时候系统都不信任证书
导出fd的证书
Tools - Options打开选项卡,切换到HTTPS,点击ACtions,下拉框点击EXport Root Cer...
然后证书就被导出到桌面了
上传证书
上传证书到服务器,本地有openssl环境的直接在本地运行,如服务器装的有宝塔面板,那么也就有openssl环境
证书转换
因为fiddler导出的证书格式为cer,需要装换成pem格式
使用命令:openssl x509 -inform der -in FiddlerRoot.cer -out FiddlerRoot.pem
计算证书hash
使用命令:openssl version
查看openssl版本
openssl版本大于1.0执行下面这句
openssl x509 -inform PEM -subject_hash_old -in FiddlerRoot.pem | head -1
小于1.0则是下面这句
openssl x509 -inform PEM -subject_hash -in FiddlerRoot.pem | head -1
我是大于1.0,所以执行第一句
得到字符:269953fb
执行命令:cat FiddlerRoot.pem > 269953fb.0
269953fb后面是小数点和数字零
按需调整,不要一股脑的复制执行,可能hash值不同
将这个269953fb.0保存到手机
安装证书
系统证书路径:/system/etc/security/cacerts/
将证书放到这个系统目录证书目录下重启手机即可
重启之后即可在系统证书列表看到证书
配置代理
win+r,输入cmd,回车
执行:ipconfig
找到电脑的局域网ip
手机进入wifi设置,代理选择手动,主机名填写电脑的局域网ip
端口参考本文 软件的基本配置 第五步,就是绿色圈起来的,默认是8888
保存
至此,就完成了一系列操作
检查状态
电脑打开fd,手机随便进入一个HTTPS的网站,看看是否正常相应,是就配置好,否没配置好
注意事项
已经按照教程走了一遍依然无法抓包?
证书安装路径?
证书必须安装到系统目录,安卓7以上不再信任用户证书
系统证书目录:/system/etc/security/cacerts/
用户证书目录:/data/misc/user/0/cacerts-added/
路径没错,依然无法抓包?
fd重新安装证书,记得重启fd
以上已排除,依然无法抓包
不是重新安装证书,让fd卸载掉证书,出现下面这个弹窗点击 No
查看系统证书
受信任的证书列表里面找找有没有fd的证书,有的话删掉,然后重新安装证书再试试
以上也已经排除了,问题依旧存在
玄学问题,等我遇到再说
可以抓到https,但部分软件没网
这种情况一般是软件内置双向验证证书,需要用到xp插件,下次有机会再说
无法将证书放到系统目录?
检查是否解了sysem,没有解锁请使用magisk映射证书。
如何判断是否解锁,对于system文件夹没有写入权限就是未解
magisk简单的方法:
随便找个启用的脚本,按照系统证书目录新建文件夹,将证书放到这个文件夹下即可,记得重启手机。
做个演示,模块目录文件夹命为:Show_touch
将证书放到以下目录即可
/data/adb/modules/Show_touch/system/etc/security/cacerts/