说明
1 | Android证书分为“用户证书”和“系统证书”两种,在设置->安全->"查看安全证书"列表中,可以看到“系统”和“用户”两个列表。用户通过浏览器下载安装或者通过WLAN高级设置安装的证书均为用户证书。 |
通过说明,我们明白了现在的手机基本安装普通证书(用户证书)很多应用都将无法抓包,因为很多应用都有ssl或者检查代理的反抓包措施,那么这时候就无法抓包了吗,答案当然不是。
网上还是有这些的,但是遇到的一下问题总要查好多篇文章才找得到解决方案,所以针对这情况,我以自身情况为列写这篇文章,以免以后要用。
本文以夜神模拟器为列(因为手上没有root的真机)
抓包工具以fiddler4为例
电脑设备以windows10为例
一 .准备工作
1、准备一台已经 root的手机(本文以夜神模拟器为例)
2.电脑安装好adb,openssl(如果阿里云支持分享这类的话我倒是不介意留链接,又因为这个环境安装还是比较简单所以就不留教程和链接了,自行百度即可)
3.电脑安装好fiddler4
二.安装根证书流程
fiddler导出cer证书
打开fiddler,导航条里选择Tools,选择Options,然后选择HTTPS选卡,在右侧点击Actions, 选择第二个到处证书到桌面
注意这里有两打勾的勾选上才能抓包HTTPS流量
- cer证书转pem证书
==cmd需要进入cer证书所在目录==
1 | openssl x509 -inform der -in FiddlerRoot.cer -out FiddlerRoot.pem |
==或者输入时带上证书路径,此处youname,指的是用户名称如zhangsan==
1 | openssl x509 -inform der -in C:\Users\youname\Desktop\FiddlerRoot.cer -out FiddlerRoot.pem |
- 为证书计算hash值改名然后pem证书
1 | openssl x509 -inform PEM -subject_hash -in FiddlerRoot.pem -noout |
会输出一个hash值
这里放一个其他博客提到的格式
博客链接.
1 | #PEM或者DER格式均可 |
将hash值赋值,并将xxx.pem证书改名为hash值后缀改为0(如c8750f0d.0)
adb连接手机
查看电脑是否成功连接到手机
1
2
3
4adb devices -l #显示所有已连接的设备详细信息:127.0.0.1:62001
未连接则运行如下命令连接
adb connect 127.0.0.1:62001 #默认端口连接成功状态
adb 推送证书到sdcard目录
1
2#传入手机,提醒小白需注意源文件(即xxxx/xxx/c8750f0d.0)目录问题
adb push c8750f0d.0 /sdcardadb shell 修改system目录权限(避免出现adb push时 Read-only file system的错误)
- 进入cmd
- adb remount(此处若提示
Not running as root. Try "adb root" first.
则运行adb shell su -c "mount -o rw,remount,rw /system"
) - adb shell
- su或者#(获取手机的root权限)
- #挂载系统目录为可写(如此方法不可用,用下面那条命令,直接修改system权限)
mount -o rw,remount /
- chmod 777 system
将证书移动到目录(/system/etc/security/cacerts/)
==紧接这上面修改完系统权限后,将证书移到目标目录==1
mv /sdcard/c8750f0d.0 /system/etc/security/cacerts
9.#修改证书权限
1 | chmod 644 /system/etc/security/cacerts/c8750f0d.0 |
如果没意外,至此已经安装系统证书到手机
查看是否成功:
手机的设置——安全——凭据存储——信任的凭据(信任的CA证书)
==注意,其他证书,名字不一样==
三.安装drony
分享网友提供的链接
英文版https://ustb.lanzoux.com/iXrGTjtw2re 密码:68e1
中文版https://ustb.lanzoux.com/iVML1jtw9ed 密码:2b71
使用说明:手机wifi处无需设置代{过}{滤}理,抓包工具代{过}{滤}理为本机127.0.0.1:port,测试时使用模拟器,真机需要将电脑防火墙全部关闭才可识别到连接WiFi,仅为部分app可用,如果app做了双向代{过}{滤}理可能就不行了
Droni_1.3.155谷歌商店版:https://pan.xunlei.com/s/VMfYAdY7fai4ddg13xRs-SAoA1 提取码:45fi
吾爱文章链接
因为使用软件方法都一样,就吾爱那里拔了一些图(侵删)
到此就可以愉快的抓包了
因为本文使用的是夜神模拟器,所以此次从模拟器上,配置drony后就无法上网(在未root的真机可以上网),以前在root上可以正常抓包,不知道是不是模拟器的问题还是什么,暂时未解决,
如有大佬知晓,望不吝指点
最后留下参考链接
部分APP无法代理抓包的原因及解决方法(flutter 抓包)
adb push时 Read-only file system的错误
命令“adb root”有效,但“adb remount”导致“不允许操作”消息
为安卓系统(夜神模拟器)添加Mitmproxy证书