charles抓取微信小程序数据(抓取http和https数据)

本文介绍了如何使用mac版charles抓包工具抓取安卓手机(如华为荣耀8,系统7.0)上的微信小程序http和https数据。首先配置charles的代理设置,然后在手机上设置代理,确保两者在同一局域网内。对于http数据,设置完成后可正常抓取;对于https数据,需要在charles中安装SSL根证书并进行SSL代理设置。手机端同样需要安装charles证书,最终实现对https接口和数据的抓取。记得在抓取完成后移除手机的代理设置。

本文中使用的是mac上的抓包工具charles进行抓包,手机是华为荣耀8,安卓版本7.0(其实跟版本没啥关系)

要想抓取到微信小程序的数据首先要解决的第一个问题件就是如何

通过charles抓取手机上的数据(HTTP)

具体配置过程如下:

第一步,charles上通过proxy->proxy setting进入代理设置,入口如下图所示

点击后进入如下所示界面

    

记住此处的port,默认为8888,也可以进行修改,只要不冲突就可以,勾选上Enable transparent HTTP proxying,到此为止完成charles上的初步设置。

到此为止,完成了电脑端的设置

               ----------------------------------小型分割线----------------------------------

第二步,设置手机代理,注意要保证手机所连接的wifi跟电脑在一个局域网内(就是连接同一个wifi就好了

首先,需要知道电脑的ip地址,我的电脑上通过系统偏好设置->网络可以查看

注意此处电脑连接的是PHICOMM_air的wifi

手机上进入wifi设置,一般按住你正在连接的wifi一会会弹出一个菜单,点击修改网络就到如下界面,勾选“显示高级选项”,点击代理

注意此处手机连接的也是PHCOMM_air的wifi

点击代理后进入如下界面,服务器主机名处填写刚才查到的电脑的ip地址即可,服务器端口填写第一步中charles处设置的端口,默认是8888,如果做了修改,填写设置charles时修改的端口值。

点击保存,此时charles上会弹出一个对话框,点击allow即可。此时就可以抓取手机上的http数据包了(注意不是https)

如下图所示,点入一个应用后,抓取到的http包

到此为止,完成了第一大步骤的设置,可以通过电脑抓取手机的HTTP数据包了

对于HTTPS数据,到此步为止,抓包工具上的列表部分会显示一堆unknown的地址

*********************************************分割线************************************************************

完成以上步骤,charles会同时抓取手机以及电脑上的数据包,如果针对手机抓包可以通过取消勾选下图所示的选项屏蔽掉

手机连接不上charles的几种原因及解决方案:

1.确认手机跟电脑是不是在一个wifi环境下,我在使用过程中又一次手机由于wifi信号强弱问题自动切换过wifi导致抓了一般的数据包抓不到了

2.可以尝试更换一下端口号(8888可能已经被占用)

3.可以通过电脑手动添加手机的ip

4.试试关掉电脑防火墙,在重新连接

5.最后大招,万能重启。。。重新打开charles,重新设置手机连接。。。

 

*********************************************分割线************************************************************

抓取HTTPS数据包

首先是电脑端的配置,进入charles的Help->SSL Proxying->Install Charles Root Certificate

点击Install Charles Root Certificate之后,会弹出mac的钥匙串访问页面

(正常第一次进去这个证书应该是一个红叉,我这里由于已经进行过设置所以显示正常)

右键点击该证书,选择菜单中的“显示简介选项”,接着进入信任栏目,将其全部置为“始终信任”

完成这一步的设置后,这个根证书应该会跟我上面一个截图一样,而不会显示红叉

接着点击Proxy->SSL Proxy Settings,弹出如下页面

弹出的对话框中,勾选Enable SSL Proxying,然后点击add添加Host为*和Port为443,点击ok(此处将host设置为*的意思是主抓取全部的http是数据包,如果想针对某个域名抓取可以在此设置)

到此为止,完成了电脑端的设置

                   ----------------------------------小型分割线----------------------------------

接着需要在手机端安装证书,点击Charles上的Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser

点击之后弹出如下对话框:

接着在手机浏览器上访问charlesproxy.com/getssl这个地址(此处请注意,如果是小米手机,最好不要用自带的浏览器,亲自踩坑的忠告……),我的手机让我输入锁屏密码,输入之后,会弹出如下界面:

输入一个名字比如charlesproxy之后点击确定,会有一个一闪而过的提示,就ok了

此时进入小程序,可以看到charles上能够看到https的接口的地址和数据了

后续的工作诸如分析爬取就仁者见仁智者见智了~

注意,有一些应用使用的网络框架是不允许通过代理访问的,此时通过charles抓包显示的地址仍是unknown,或者手机上访问该应用会提示网络连接错误等信息,此时取消勾选charles的SSL Proxying settings中的勾选框就可以正常访问了

最后,抓取工作完成后,记得把手机上的代理设置恢复原样,否则当电脑上的charles关闭时,手机将无法正常访问网络

<think>嗯,用户这次想了解微信小程序抓取接口入参的具体方法。之前系统已经提供了抓包工具的设置基础,但用户现在更聚焦于"入参"这个技术细节,说明ta可能在调试或逆向分析某个小程序。从用户提问方式看,ta应该是有一定技术背景的开发者,但可能不熟悉网络调试工具的具体操作。值得注意的是ta两次都强调"微信小程序",说明需要绕过小程序特有的安全机制,比如证书校验或加密处理。根据上次的Fiddler抓包方案延伸思考:入参查看的关键其实在于请求体解析。微信小程序接口普遍使用HTTPS加密,所以必须解决SSL代理问题。这里需要补充说明三点特殊处理:1)小程序证书锁定问题需要额外步骤;2)JSON格式入参的查看技巧;3)可能遇到的编码问题解决方案。考虑到用户操作环境差异,应该分别给出IOSAndroid的适配方案。特别是Android平台需要处理微信7.0以上版本的证书限制,这个技术点很多教程都没更新。另外用户没提但很有用的是Charles工具的HTTPS流量地图功能,能自动分类接口,这个增值功能值得推荐。用户真实需求可能是调试第三方小程序的接口,因此要提醒法律边界。在工具推荐部分,Wireshark虽然更底层但学习成本高,可能不适合快速查看入参的场景,所以不作为首选方案。</think> 在微信小程序开发中查看接口入参可通过以下方法实现,核心是使用抓包工具捕获并解析HTTPS请求: --- ### 一、基础抓包设置 1. **工具准备** - Fiddler/Charles(选其一) - iOS/Android设备(需与电脑同局域网) - 电脑安装抓包工具的根证书 2. **代理配置** ```bash # 示例:Charles默认端口8888 设备WIFI设置 → 配置代理 → 手动 → 输入电脑IP:8888 ``` > *需在微信中配置代理:微信 → 我 → 设置 → 网络代理 → 使用系统代理 [^1]* --- ### 二、查看入参具体步骤(以Fiddler为例) 1. **捕获HTTPS流量** - 工具开启`Decrypt HTTPS Traffic` - 设备安装Fiddler根证书(iOS需在`设置→通用→描述文件`中信任) 2. **定位小程序请求** ```mermaid graph LR A[启动微信小程序] --> B[操作触发接口请求] B --> C[Fiddler捕获域名含'.qq.com'或'.weixin.com'的请求] ``` 3. **解析入参位置** - 选中目标请求 → Inspectors → **WebForms标签页** - 查看以下栏目: | 栏目 | 入参类型 | 示例格式 | |------------|----------------------|------------------| | QueryString| URL参数 | `?id=123&type=1` | | Headers | 认证/设备信息 | `Authorization: Bearer xxx` | | **RequestBody** | 主体数据(关键) | JSON/FormData | --- ### 三、特殊场景处理 1. **加密参数** - 若入参被加密(常见于支付/登录接口): - 使用`xposed+JustTrustMe`绕过证书固定(需Root设备) - 反编译小程序:通过`unidbg`模拟执行解密逻辑 2. **非HTTP协议** WebSocket接口需: - 在Fiddler中启用`WebSocket捕获` - 过滤`wss://`开头的连接 --- ### 四、替代方案(无需抓包) ```javascript // 在小程序代码中植入调试 wx.request({ url: 'api.example.com', data: { test: 123 }, // 此处即入参 success: res => console.log(JSON.stringify(res.config.data)) }) ``` > *注:仅适用于自有小程序的调试* --- ### 工具对比推荐 | 工具 | 优势 | 局限性 | |------------|-----------------------|---------------------| | **Charles** | 可视化流量地图 | 付费版功能完整 | | **Fiddler** | 免费脚本扩展能力强 | 界面较复杂 | | **Wireshark** | 支持原始包分析 | 需手动解析HTTPS |
评论 17
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值