charles抓app数据包


2017年10月25日,微信朋友圈中一款小游戏火了,就是那个那个什么测试你的左右脑来给出你多大,看样子好像已经有几千万人在玩
身为程序小哥哥的我看完之后,就想看看到底是什么鱼牛海怪,下面我就来揭露这个程序的秘密啦
我们使用charles(跨平台又很强大,我就是用这个吧:)
下面是测试操作步骤:
准备工具: 这是使用的是安卓手机 微信 Charles, PC
思路: 通过Charles截取网络封包获取手机小程序请求到的内容,分析代码即可理解分数计算的逻辑
  小程序的请求是HTTPS类型的,抓包拿到的都是加密后的内容
安装环境: 由于本实验是使用window 10操作系统,安卓vivo下完成的,喜欢Linux系统的可以下载对应的Linux版本的charles,操作大同小异
安装步骤:
一: 抓包环境的配置
登录https://www.charlesproxy.com/latest-release/download.do下载charles抓包软件(可以替换一个jar包来**软件,这里就不讲了.后缀名.msi.其实是一款代理服务器,通过成为电脑或者浏览器的代理,然后截取请求和请求结果达到分析抓包的目的,主要是http请求。)
注: 这个软件是用java写的,因此你得提前配置好java开发环境,安装适合的jdk(charles版本和jdk版本也可能会导致出现错误) Charles是收费软件,可以免费使用30天,之后每次使用不能超过30分钟,并并且启动有10秒延迟
二: 在电脑和手机上安装证书
1.在电脑上安装证书:
点击Help-SSL Proxying-Install charles root certificate,下载并安装证书
选择安装证书--->选择自己想要的存储位置(当前用户/本地计算机)---> 将所有的证书都放入下列存储--->选择受信任的根证书颁发机构->到证书路径
出现该证书没有问题就说明证书安装成功了
2.在手机上安装证书:
(1) 将电脑安装证书 :(1)点击Help-SSL Proxying-Install charles root certificate on a Mobile Device...显示出来了需要设置手机http代理的主机名和端口号
菜单中找到 proxy -> SSL proxy setting -> 勾选Enable SSL Proxying -> locations 里 添加一个  host 为 * 的 通配符 即可通配所有域名
(2) 给手机安装证书 手机浏览器访问https://www.charlesproxy.com/documentation/additional/legacy-ssl-proxying/ 点击here安装
设置证书名称(随便),设置凭据用途:WLAN或者应用和v*n
(2) 打开手机设置,添手动代理,设置代理服务器的主机名(自己电脑的ip地址),并设置代理服务器端口号8888
代理设置好了,手机和电脑的证书都安装了之后,就可以抓取手机APP的http,https协议的数据包了。

当然喜欢用wireshark和fiddler的同学也可以方便了经过类似操作抓包

下面是比较清晰的原理图

xcharles抓app数据包