安卓7.0后使用fiddler抓包
已经很久没有使用安卓手机进行使用fiddler抓包了,这两天手机安装证书,设置无线代理后发现抓不到,网上查了资料,发现有些零零散散,最终指向的是安卓7.0后谷歌提高了安全权限,需要把证书放入系统证书内才可以。
前面配置好fiddler https抓包的步骤我这里就不写了,网上太多了,这里只写设置好之后的操作。
1、首先下载openssl.exe 并安装
地址: https://slproweb.com/products/Win32OpenSSL.html
我是下载了200M的那个版本
2、配置环境变量,直接在path中新增一条后保存
3、验证安装成功
4、fiddler证书保存到本地并转换格式
直接在fillder中导出证书到桌面
转换格式 cer转换成pem
打开cmd 运行命令(自己替换自己对应的目录)
openssl x509 -in C:\Users\Administrator\Desktop\FiddlerRoot.cer -inform DER -out C:\Users\Administrator\Desktop\FiddlerRoot.pem -outform PEM
(懒得自己弄了,贴别人的图)
继续运行命令 查看pem文件的哈希值(自己替换自己对应的目录)
openssl x509 -subject_hash_old -in C:\Users\Administrator\Desktop\FiddlerRoot.pem
然后把 .pem 文件名称改为 269953fb.0
5、最后把证书push到模拟器的系统目录里边
先用adb链接上真机或模拟器 然后push
push的是系统目录 所以要有root权限
adb push C:\Users\Administrator\Desktop\269953fb.0 /system/etc/security/cacerts
=========================================================
雷电模拟器可能会push失败 显示 Read-only file system 类似这种错误
网上搜索解决办法 都是 adb root adb disable 之类的 但是不能解决问题 雷电模拟器获取系统目录的权限是再设置里边
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
按照网上找到的方法,手机需要root,我这里不想root,就使用了模拟器来实验。
1、先对模拟器进行root
2、设置获取系统目录写写入权限
进行推送,>adb push C:\Users\18018\Desktop\269953fb.0 /system/etc/security/cacerts
如果报错,参考下面
adb操作提示Read-only file system问题
使用场景是:在替换手机的内置文件的时候,提示这个,按照以往的经验,
手机开发者模式打开,usb调试打开,或者重复的插拔几下数据线
执行
adb root
adb remount
‘adb remount’ 将 ‘/system’ 部分置于可写入的模式,默认情况下 ‘/system’ 部分是只读模式的。这个命令只适用于已被 root 的设备。
在将文件 push 到 ‘/system’ 文件夹之前,必须先输入命令 ‘adb remount’。
‘adb remount’ 的作用相当于 ‘adb shell mount -o rw,remount,rw /system’
这次试了好多次,都不ok,最后找到了一种方案:
adb root //获取root权限 adb disable-verity //关闭分区检测功能 adb reboot //执行adb disable-verity后需要重启设备 adb root //设备重启后再次获取root权限 adb remount //使system分区为可读可写模式
这次如上操作再push文件的时候就成功push了,重点是加了这一句
adb disable-verity:关闭在调试环境下的dm-verity检查
adb命令权限的番外篇:
chmod 777
例sudo chmod 777 filename
read 4 00000100 read,读取。当前用户可以读取文件内容,当前用户可以浏览目录。
write 2 00000010 write,写入。当前用户可以新增或修改文件内容,当前用户可以删除、移动目录或目录内文件。
x 1 00000001 execute,执行。当前用户可以执行文件,当前用户可以进入目录。
7 = 4 + 2 + 1 读写运行权限
5 = 4 + 1 读和运行权限
4 = 4 只读权限
因此,大家也就明白了 chmod 754 filename 命令的含义了。
这句命令的意思是将filename文件的读写运行权限赋予文件所有者,把读和运行的权限赋予群组用户,把读的权限赋予其他用户
————————————————
参考文章1:安卓模拟器(系统版本大于7.0)安装【Fiddler||Charles】证书到系统根目录_雷电模拟器安装fd证书到系统-CSDN博客
参考文章2:adb操作提示Read-only file system问题-CSDN博客
————————————————