一、下载【证书生成插件】,点击fiddlercertmaker进行安装

二、安装好后,打开Fiddler-Tools-Options-Connections,查看是否勾选了allow remote computer to connect

2023-12-04T15:50:51.png

三、检查Certificates generated by 处是不是显示CertMarker.dll,如果不是这个,代表【证书生成插件】未安装成功

2023-12-04T15:51:11.png

四、步骤1:把已经安装过的证书全部清除掉;步骤2:重新安装新的证书

2023-12-04T15:51:44.png
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)