Android Charles抓包

下面是 Mac 使用 Charles 抓包工具抓包;

1.下载安装 Charles 

打开下面网址:https://xclient.info/s/charles.html

点击下载即可,如果打不开,搜索 xclient.info ,打开后搜索 Charles 即可;

我下载版本为:4.2.8;

下载完毕,会提示输入密码,密码为: xclient.info

打开如下图,将软件移入 applications 即可,注意下面有一个名称为 Crack 的文件夹:

在应用程序中找到 Charles ,右键选择包内容,依次打开 contents==>java==>charles.jar ,如下图所示:

回到上面的 Crack 文件夹中,发现里面也会有 charles.jar ,将此 jar 文件替换掉上面包内容的jar,替换完毕,退出即可;

安装完毕。

2.设置端口号

注意:

在此之前,请关闭所有代理(翻墙软件之类的),电脑 WiFi 和手机 WiFi 保证连接的是同一个;此条非常重要,否则抓包直接导致失败。

安装完毕,打开 Charles,点击 Proxy==>Proxy Settions... ,如下图所示:

点击后会出现一个弹窗,设置端口号,设置 Port,我设置为了 8888,点击 OK,如下图所示:

3.设置域名

打开 Proxy==>SSL Proxying Settings... ,如下图所示:

点击后会出现一个弹窗,在里面可以筛选我们项目的域名,如下图所示,我已经添加了一个域名:

点击 Add,会出现一个输入域名的弹窗,在 Host 中填入域名,我加入的域名为:c.y.qq.com ,填写完毕,点击 OK;

注意:这是我项目中的域名,请自行查看自己项目中的域名,并填写;如下图所示:

4.设置主机名和端口,安装证书

点击 Help==> SSL Proxying==> Install Charles Root Certificate on a Mobile Device or Remote Browser,如下图所示:

点击后会出现下面的弹窗:

1:主机名:192.168.232.85

2:端口号:8888

3:证书地址:chls.pro/ssl

打开手机,打开网络详情,点击右上角修改按钮(不同按钮可能操作不一样),如下图所示:

点击之后,点击高级选项==>手动代理,代理服务器主机名为上面的主机名,端口为上面的端口号,依次填入并保存。

接下来打开手机浏览器,输入上面的证书地址,并下载下来;

下载完毕后开始安装证书,打开设置==>安全==>高级==>加密与凭据==>从SD卡安装证书;(不同的手机位置可能不同,但是找到安装证书就可以)

然后安装我们刚下载的证书:我的证书在 Browser ==> 其他 文件夹中,请自行找到自己的证书文件夹地址并安装;

5.项目配置

将上面的证书放在项目的 res ==> raw 文件夹中(没有请创建),如下图所示:

在 res ==> xml ==> http.xml(没有请创建),里面代码为:

<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config>
        <domain includeSubdomains="true">c.y.qq.com</domain>

        <!-- 方法1 需要手机安装证书-->
<!--        <trust-anchors>-->
<!--            <certificates src="user"/>-->
<!--        </trust-anchors>-->


        <!-- 方法2 不需要手机安装证书-->
        <trust-anchors>
            <certificates src="@raw/wqs"/>
        </trust-anchors>
    </domain-config>
</network-security-config>

上面给出了两种方法,在文章最后会对这两种方法给出解释;

最后在 AndroidmManifest.xml 文件中的 application 中加入下面代码:

android:networkSecurityConfig="@xml/http"

如下图所示:

注意:

如果项目不需要抓包了,或者需要上线测试,请删除 AndroidmManifest.xml 中的配置,以免带来不必要的麻烦和 bug 。

6.测试抓包

打开 APP ,并请求依次网络,就可以看到 Charles 中的记录了,可以看到请求成功,方式为 get ,网速延迟等,如下图所示:

点击 Contents 就可以看到接口返回内容了,如下图所示:

抓包结束;

在上面的 《5.项目配置》 里面,http.xml 中有两种方法;

第一种方法:手机安装证书,直接使用 user 即可,不需要在项目中配置证书了。

第二种方法:不需要手机安装证书,直接在项目中配置证书。

发布了322 篇原创文章 · 获赞 450 · 访问量 32万+

猜你喜欢

转载自blog.csdn.net/wuqingsen1/article/details/102972743