MAC系统利用charles抓取微信小程序和手机APP数据包(http和https数据包)
本文中使用的是mac上的抓包工具charles进行抓包,手机是华为荣耀8
下载并安装Charles for Mac
Charles for Mac(HTTP信息抓包工具) V4.2.5 苹果电脑版
要想抓取到微信小程序的数据首先要解决的第一个问题件就是如何通过charles抓取手机上的数据具体配置过程如下:
MAC上的Charles设置
第一步,charles上通过proxy->proxy setting进入代理设置,入口如下图所示
点击后进入如下所示界面
记住此处的port,默认为8888,也可以进行修改,只要不冲突就可以,勾选上Enable transparent HTTP proxying,到此为止完成charles上的初步设置。
到此为止,完成了MAC上的charles设置
手机端设置
第二步,设置手机代理,注意要保证手机所连接的wifi跟电脑在一个局域网内(就是连接同一个wifi就好了)
首先,需要知道电脑的ip地址,我的电脑上通过系统偏好设置->网络可以查看
注意此处电脑连接的是PHICOMM_air的wifi
手机上进入wifi设置,一般按住你正在连接的wifi一会会弹出一个菜单,点击修改网络就到如下界面,勾选“显示高级选项”,点击代理
注意此处手机连接的也是PHCOMM_air的wifi
点击代理后进入如下界面,服务器主机名处填写刚才查到的电脑的ip地址即可,服务器端口填写第一步中charles处设置的端口,默认是8888,如果做了修改,填写设置charles时修改的端口值。
点击保存,此时charles上会弹出一个对话框,点击allow即可。此时就可以抓取手机上的http数据包了(注意现在抓取的还不是https数据包)
如下图所示,点入一个应用后,抓取到的http包
到此为止,MAC上利用charles抓取手机HTTP数据包就完成了,可以通过MAC抓取手机的HTTP数据包了
完成以上步骤,charles会同时抓取手机以及电脑上的数据包,如果针对手机抓包可以通过取消勾选下图所示的选项屏蔽掉
手机连接不上charles的几种原因及解决方案:
1.确认手机跟电脑是不是在一个wifi环境下,我在使用过程中又一次手机由于wifi信号强弱问题自动切换过wifi导致抓了一般的数据包抓不到了
2.可以尝试更换一下端口号(8888可能已经被占用)
3.可以通过电脑手动添加手机的ip
4.试试关掉电脑防火墙,在重新连接
5.重新打开charles,重新设置手机连接
手机端HTTPS数据包抓取
以上设置只能抓取HTTP数据包对于HTTPS数据抓包工具上的列表部分会显示一堆unknown的地址
那么对于手机端HTTPS数据包的抓取又该如何设置呢请往下看
首先是MAC的配置,进入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是数据包,如果想针对某个域名抓取可以在此设置)
到此为止,完成了MAC的设置
手机端设置(重要)
接着需要在手机端安装证书,点击Charles上的Help->SSL Proxying->Install Charles Root Certificate on a Mobile Device or Remote Browser
点击之后弹出如下对话框:
接着在手机浏览器上访问charlesproxy.com/getssl这个地址(此处请注意,最好不要用自带的浏览器),我的手机让我输入锁屏密码,输入之后,会弹出如下界面:
输入一个名字比如charlesproxy之后点击确定,会有一个一闪而过的提示,就ok了
此时进入小程序,可以看到charles上能够看到https的接口的地址和数据了
注意,有一些应用使用的网络框架是不允许通过代理访问的,此时通过charles抓包显示的地址仍是unknown,或者手机上访问该应用会提示网络连接错误等信息,此时在MAC上取消勾选charles的SSL Proxying settings中的勾选框就可以正常访问了
最后,抓取工作完成后,记得把手机上的代理设置恢复原样,否则当电脑上的charles关闭时,手机将无法正常访问网络
好了MAC上利用charles抓取微信小程序数据包,手机APP数据包已经能成功抓取了。下次我们将为大家分享
如何在windows系统上利用charles抓取微信小程序数据包和使用fiddler抓包工具抓取微信小程序数据包,手机APP数据包的操作方法
- vmware安装ubuntu12.04嵌套安装xen server(实现嵌套虚拟化)
- Golang语言切片slice的线程协程安全问题
- ASP.NET Core 在 Azure 开启 HTTPS
- 算法基础:最大递减数问题(Golang实现)
- 亲身经历的痛--database/sql: Stmt的使用以及坑
- Ubuntu上通过nginx部署Django笔记
- Go学习笔记:golang交叉编译
- Python魔术方法-Magic Method
- python类中super()和__init__()的区别
- Python正则表达式:最短匹配
- 转--Go时间格式化和类型互换操作
- Python标准库(1) — itertools模块
- Linux笔记:使用Vim编辑器
- 一步一步学lucene——(第二步:示例篇)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法