闲话时间
在某一次模拟器更新之后我的fiddler证书跟鬼打墙一样莫名其妙失效了,所以直接怒删重装了一波,鉴于之前没有记录过过程所以这里稍微记一下,正好博客已经偷懒很久了
薅羊毛(不是)最离不开的就是抓包了,但是自从安卓的api level 24版本也就是对应安卓版本7.0发布之后就开始艰难了起来,最主要的原因就是系统不再信任用户安装的证书,所以在之前例如安卓5中随便安装证书后直接抓包现在是不起效的了,具体体现就是浏览访问提示证书不可信。
因为我自己的主力机是没有root的,但是自从系统策略修改之后,想要解决证书不被信任问题就只能通过将证书挪到系统证书目录里面,强行让我们抓包软件的证书成为我们的系统证书来获取信任,而对于没有root的安卓机的话基本是没有办法修改到根目录内系统文件夹的文件的,虽然也有办法迂回操作,这个就留到后面再讲,这次主要是讲通过安卓模拟器来进行测试的时候该怎么安装系统证书。
步骤
这里主要记录的是我常用的模拟器加抓包软件,其他类型和抓包平台仅供参考
雷电模拟器4.0及以上 + fiddler4.0及以上
首先是打开fiddler,在选项中将证书导出
这时候可以在桌面看到一个命名为FiddlerRoot.cer
的文件,虽然可以直接安装但是不是我们的目的,我们需要的是将它放入系统目录成为系统信任证书,这时候就需要将证书格式转换为安卓系统能读取到的格式
openssl x509 -inform der -in FiddlerRoot.cer -out FiddlerRoot.pem -outform pem
注意这里如果是用Windows系统的话OpenSSL需要自己部署一下,嫌麻烦的话可以直接拖到linux服务器上把转换步骤都走完之后再拖回来继续操作就好,这里是转换成了安卓需要的pem证书格式,但是我们可以到系统里存放证书的目录看看具体目录在/system/etc/security/cacerts
,既然说到这里了就提一句,前面那个目录是系统自带的证书目录,而/data/misc/user/0/cacerts-added
则是用户安装的证书对应的目录
在这个系统证书目录下可以看到,所有的证书储存都是按照统一的格式,那这种格式就是由证书文件的哈希值再加上.0
后缀组成的,要是碰上了相同哈希值的文件就将.0
增加一位变为.1
,以此类推,这里我们算出证书对应的哈希值
openssl x509 -inform PEM -subject_hash_old -in FiddlerRoot.pem | head -1
································
269953fb
执行之后输出的一串数字就是我们证书对应的文件名,我这边输出的是269953fb
所以对应的将刚才生成的FiddlerRoot.pem
改为269953fb.0
就是我们要用的证书了,这时候放入模拟器中,挪入到系统证书对应的目录,再修改权限为如下
此时重启模拟器就可以在系统中看到fiddler证书出现在系统信任证书中了
本文作者:Losir 本文链接:安卓抓包二三事part① - https://ionssource.cn/archives/72/ 版权声明:如无特别声明,本文即为原创文章,仅代表个人观点,版权归 Losir 所有,未经允许不得转载!