Android 7.0+模拟器Fiddler抓包详细教程 |
您所在的位置:网站首页 › 有没有安卓9的安卓模拟器软件啊 › Android 7.0+模拟器Fiddler抓包详细教程 |
【前言】
众所周知,假如设备是android 7.0+的系统同时应用设置targetSdkVersion >= 24的话,那么应用默认是不信任安装的Fiddler用户证书的,所以你就没法抓到应用发起的https请求,然后你在Fiddler就会看到一堆200 HTTP Tunnel to xxx.xxx.xxx:443的请求日志,这些都是没有成功抓取的https请求,下面重点介绍一下各种解决方案,相信总有一款解决方案适合你~ 【懒人快速解决篇】下面先介绍3种懒人解决方案,适合需要快速解决https抓包问题的人挑选(Android Fiddler抓包官方操作文档点这里): 1、用android 7.0以下系统的设备去装应用,是可以正常抓包,但是一般来说,android 7.0以下不管是真机还是模拟器,运行起来都是比较卡的,能接受不那么流畅体验的用户可以尝试,适合小白型用户使用; 2、把应用apk的targetSdkVersion设置为23及以下,也是可以正常抓包,但是假如是抓别人的应用,同时别人又做了防止反编译措施的话,这个方案就不适用了; 3、在应用的res/xml目录下添加文件network_security_config.xml,设置信任用户证书,内容如下: 然后application标签下设置属性:android:networkSecurityConfig="@xml/network_security_config",这个方案也是仅适用于有android基础同时懂反编译的人员使用 【一劳永逸解决篇】究其根源,targetSdkVersion >= 24的应用在android 7.0+系统的设备中之所以没法被抓包,是因为android 7.0之后的应用是默认只信任系统证书,不信任用户证书,那么我们可以想办法将Fiddler证书装到系统证书目录下,伪装成系统证书,那么就不存在因为fiddler证书不被信任而无法抓包的问题了 一、 导出Fiddler证书1、下载安装Fiddler抓包工具,下载完成之后先不要点击打开运行 2、下载fiddlercertmaker.exe这个Bouncy Castle证书生成器,因为新版本的Android拒绝超过两年有效期的证书,双击下载好的fiddlercertmaker.exe(确保已关闭Fiddler),会弹出提示导入证书成功这个对话框 1、下载Window版openssl, 点击这里打开页面,下拉到下面,选择最上面的64位EXE点击下载安装即可
1、将Fiddler cer证书转pem证书,在cmd输入如下命令进行转换: openssl x509 -inform DER -in C:\Users\Administrator\Desktop\FiddlerRoot.cer -out C:\Users\Administrator\Desktop\FiddlerRoot.pem2、用md5方式显示pem证书的hash值, 在cmd输入如下命令: openssl x509 -inform PEM -subject_hash_old -in C:\Users\Administrator\Desktop\FiddlerRoot.pem从上面可以看到,咱们生成Fiddler证书的hash值是e5c3944b 3、将pem证书重命名,使用上面显示的值e5c3944b对pem证书进行重命名,以下命令仅适用于window,linux请用mv ren C:\Users\Administrator\Desktop\FiddlerRoot.pem e5c3944b.0注意:ren命令第二个参数,直接输入新的文件名即可,不要输入完整路径,否则会报错 1、找一台root过的手机或者任意一款模拟器,因为只有root过的手机才有可能执行各种高权限的命令。我这边下载了一款叫夜神android 9系统的模拟器 重新挂载/system分区会报错: mount: '/system' not in /proc/mounts因此使用这条命令是不可行的,需要使用下述的命令: mount -o remount -o rw /使用这条命令可以临时挂载上/system文件夹,直到下一次重启。 其实为什么root用户会出现/system文件夹无权限写的情况的话,主要原因是/system所属的用户组不是root,而是system用户组,所以需要重新挂载。 当然上面方法不能挂载/system目录的话而且提示“’/dev/root’ is read-only”的话,那么是因为你的设备开启了avb,此时就只能通过下面的方式完全重新挂载整个系统(若是雷电模拟器,需要在模拟器右侧设置-性能设置下方的磁盘共享,勾选system.vmdk写入即可): adb root adb disable-verity adb remount如果adb disable-verity提示需要解锁OEM的话,那么还需要先解锁OEM: adb reboot fastboot fastboot oem unlock fastboot reboot提示解锁成功的话,重新执行命令就不会报错了 6、输入exit退出shell终端,然后输入adb push C:\Users\Administrator\Desktop\e5c3944b.0 /system/etc/security/cacerts,将事先转换好的Fiddler证书推送到夜神模拟器的/system/etc/security/cacerts目录下 1、找一台root过的手机或者任意一款模拟器,因为只有root过的手机才有可能执行各种高权限的命令。我这边下载了一款叫夜神android 9系统的模拟器 4、右边点击进入到system/etc/security/cacerts目录,然后长按左边的e5c3944b.0文件,点击复制即可复制到右边打开的目录那里 可能到这里有小伙伴会有疑问,系统证书是放在system/etc/security/cacerts目录下,那么假如是安装的用户证书是在保存在哪个目录下,其实就保存在data/misc/keystore目录下 雷电4模拟器经过上述设置之后,你会发现依然是没法成功抓包,这时需要允许以下命令给雷电4设置全局代理 adb shell settings put global http_proxy :其中adb在模拟安装目录可以找到 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |