美文网首页
mac Charles 使用抓包

mac Charles 使用抓包

作者: 土肥圆的诺诺 | 来源:发表于2019-11-24 18:22 被阅读0次

    本文记录下抓包的安装和使用过程,以防自己忘记。如有侵权,请及时联系,立即删除
    第一步:下载安装
    网上很多教程,就不一一讲解了
    第二步:安装完成
    打开charles ---> help---> register,输入账号和密码,这个自己度娘,我也是用的网上的资源。
    第三步:查看自己IP地址
    第一种打开终端输入

    ifconfig | grep "inet " | grep -v 127.0.0.1
    

    前面就是ip地址


    ip

    第二种
    打开网络偏好设置-高级-TCP/IP


    IP
    第四步:
    勾选macOS Proxy
    image.png

    第五步:手机端连入和电脑端一样的wifi
    在代理选择手动,主机名写电脑ip,端口填入8888,确定
    在电脑端会弹出弹窗,选择allow就可以了

    在电脑端就能看到很多接口的访问了


    image.png
    选择你需要关注的接口,右键-foucs,就会单独显示出来
    这时候就能快乐的抓包了
    image.png

    unknown 破解大法

    在自己开发的时候,有些包是抓不了的。显示unknown。
    具体解决方案可以看下面链接,主要学会如何将ssl证书导入手机。
    解决Charles https抓包显示<unknown>
    基本上是能解决部分问题,本人是做安卓开发,在安卓7.0以上的时候抓包是抓不到的,自己开发的app也不行。看网上有一种解决方案是这么解决的。
    1.在项目res目录下新增一个文件夹,命名xml,并且新建一个xml文件,可以命名为network_security_config.xml(名字可修改)
    2.network_security_config.xml 里面添加内容:

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <domain-config>
            <domain includeSubdomains="true">请求域名</domain>
            <trust-anchors>
                <certificates src="@raw/证书"/>
            </trust-anchors>
        </domain-config>
    </network-security-config>
    //证书名称 - 在charles里面点击Save Charles Root Certificate.
    

    3在application里面

     android:networkSecurityConfig="@raw/network_security_config"
    

    这种方法我当时实验是不ok的

    将Charles-Proxy-macOS Proxy 一定要勾选
    我用的是下面的方法,感谢大佬的分享。
    Android7.0及以上https无法抓包
    还是在上面的network_security_config配置
    以下内容引用自Android7.0及以上https无法抓包

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <base-config cleartextTrafficPermitted="true">
            <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
            </trust-anchors>
        </base-config>
    </network-security-config>
    

    只在android:debuggable为true时才生效的配置:

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <!-- 支持 Android 7.0 以上调试时,信任 Charles 和 Fiddler 等用户信任的证书 -->
        <debug-overrides>
            <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
            </trust-anchors>
        </debug-overrides>
    </network-security-config>
    

    Android 9.0允许部分 http 请求

    <?xml version="1.0" encoding="utf-8"?>
    <network-security-config>
        <!-- 支持 Android 9.0 以上使用部分域名时使用 http -->
        <domain-config cleartextTrafficPermitted="true">
            <domain includeSubdomains="true">sample.domain</domain>
        </domain-config>
        <!-- 支持 Android 7.0 以上调试时,信任 Charles 和 Fiddler 等用户信任的证书 -->
        <debug-overrides>
            <trust-anchors>
                <certificates src="system" />
                <certificates src="user" />
            </trust-anchors>
        </debug-overrides>
    </network-security-config>
    

    当然最后还是要在application的android:networkSecurityConfig引用上面文件。

    相关文章

      网友评论

          本文标题:mac Charles 使用抓包

          本文链接:https://www.haomeiwen.com/subject/cqklwctx.html