Fiddler抓不到手机HTTPS包的解决方法
一、下载【证书生成插件】,点击fiddlercertmaker进行安装
二、安装好后,打开Fiddler-Tools-Options-Connections,查看是否勾选了allow remote computer to connect
三、检查Certificates generated by 处是不是显示CertMarker.dll,如果不是这个,代表【证书生成插件】未安装成功
四、步骤1:把已经安装过的证书全部清除掉;步骤2:重新安装新的证书
Android 7以及以上(包含模拟器):HTTPS无法抓包,还需要考虑将证书安装在系统证书内
使用MT管理器,一般用户安装的证书位于手机的:/data/misc/user/0/
下面会看到十六进制命名的 .0 证书文件,有的手机可能还在 /data/misc/user/0/cacerts-removed/
或 /data/misc/user/0/cacerts-added/
目录下。总之在0这个目录下找找会找到的,不清楚是哪个证书的情况下可以将所有证书都复制过去。接下来就移动到系统证书目录:/etc/security/cacerts/ 目录下,最后再给这个证书设置一个777的权限。重启手机,一定要重启才会生效。
雷电模拟器如果MT管理器文件不可写入,需要将在模拟器软件设置->性能设置->磁盘共享System.vmdk修改为可写入
BlueStacks 5需要下载国际版,国内版无法完全root,由于无法设置代理需要以下代码快速设置(自定义的代码)
"""
@author: Jianbin.Lv
@contact: [email protected]
@software: PyCharm
@file: blue_stacks_proxy.py
@created: 2023-09-07 9:48
@desc:
"""
import socket
import subprocess
import time
def exec_cmd(cmd):
p = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
return p.communicate()
if __name__ == '__main__':
myname = socket.gethostname()
ip = socket.gethostbyname(myname)
cmd1 = 'adb devices'
cmd2 = 'adb shell settings put global http_proxy ' + ip + ':8888'
print(cmd2)
stdout1, stderr1 = exec_cmd(cmd1)
if stderr1:
print('\n' + str(stderr1, encoding='utf-8'))
else:
res_list = str(stdout1, encoding='utf-8').split('\r\n')
if len(res_list) < 4:
print('\n没有查询到已连接的手机/模拟器')
elif len(res_list) == 4:
stdout2, stderr2 = exec_cmd(cmd2)
if stderr2:
print('\n' + str(stderr2, encoding='utf-8'))
else:
print('\nerror: more than one device/emulator')
print('\n' + str(stdout1, encoding='utf-8'))
time.sleep(10)
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。