Fiddler抓取数据
一、Fiddler简介
现在的移动应用程序几乎都会和网络打交道,所以在分析一个 app 的时候,如果可以抓取出其发出的数据包,将对分析程序的流程和逻辑有极大的帮助。对于HTTP包来说,已经有很多种分析的方法了,但是现在越来越多的应用已经使用HTTPS协议来和服务器端交换数据了,这无疑给抓包分析增加了难度。可是 Windows系统下的 Fiddler 可以用来解决这个问题。
下载神器Fiddler,下载链接:
http://fiddler2.com/get-fiddler
二、配置 Fiddler
参考:https://blog.csdn.net/jiangwei0910410003/article/details/19806999
在 Fiddler 中设置“允许远程连接”和“默认端口”
选择Tools菜单
勾选 “CaptureHTTPS CONNECTs”,接着勾选 “Decrypt HTTPS traffic” 。同时,由于我们是通过 WiFi 远程连过来,所以在下面的选项框中选择 “…fromremote clients only” 。
如果你要监听的程序访问的 HTTPS 站点使用的是不可信的证书,则请接着把下面的 “Ignore servercertificate errors” 勾选上。监听端口默认是 8888,你可以把它设置成任何你想要的端口。勾选上 “Allow remote computersto connect” 。
为了减少干扰,可以去掉 “Act assystem proxy on startup” 。
三、手机配置
首先查看电脑的 IP 地址,确保手机和电脑在同一个局域网内
Android 手机上的配置
将 Fiddler 代理服务器的证书导到手机上才能抓这些 APP 的包。导入的过程:打开浏览器,在地址栏中输入代理服务器的 IP 和端口,会看到一个Fiddler 提供的页面,然后确定安装就好了
打开 WiFi 设置页面,选择要连接的 wifi ,并且长按,在弹出的对话框中,选择“修改网络”。在接下来弹出的对话框中,勾选“显示高级选项”。在接下来显示的页面中,点击“代理”,选择“手动”。代理服务器主机名设为 PC 的 IP ,代理服务器端口设为 Fiddler 上配置的端口 8888,点”保存”。
苹果手机上的配置
苹果手机上的配置其实跟 Android 手机基本是一样的。如图
四、分析几个微转发平台的数据
https://blog.csdn.net/two_water/article/details/71106893
---------------------------------------------------------------------------
在windows下使用Charles对移动终端抓包(https请求)
一、Charles简介
Charles是目前最强大最流行的http抓包调试工具,Mac、Unix、Windows各个平台都支持。特别是做APP开发,调试与服务端的通信,Charles是必备工具。Charles本质是就是
一个http抓包分析工具,在工作的时候需要先把charles设置成代理服务器,这样所有的网络请求都会经过charles了。
官方下载地址:https://www.charlesproxy.com/download/
破解方法(要不然只能默认使用30分钟就自动关闭):
安装后先打开Charles一次(Windows版可以忽略此步骤)
下载破解文件charles.jar
替换掉原文件夹里的charles.jar
Windows: C:Program FilesCharleslibcharles.jar
安装完以后,去掉windows proxy的勾选。
原因是去掉后过滤掉PC上抓到的包,只抓取移动终端上的信息。
二、设置抓取https协议的包
设置charles ssl代理:Proxy->SSL Proxy Settings 弹出一个ssl代理设置界面
1)Enable SSL Proxying复选框打上勾
2)添加你想要的设置代理的域名,端口默认443(不添加的话,会出现乱码)
三、手机下载ssl证书
1)Help->SSL Proxying ->Install Charles Root Certificate on a Mobile Device or Remote Browser,会弹出如下提示框:
手机浏览器输入上述的网址https://chls.pro/ssl,会提示输入图案,绘制好之后即可自动下载证书到手机端
给证书输入一个名称,保存即可。
四、设置代理(记住手机跟电脑要在同一个网络,用的同一个路由器)
1)查看默认端口 Proxy->Proxy Settings 在这个页面会看到HTTP Proxy的默认端口是8888 我们不需要修改,只需要知道有这个值就行
2)查看当前电脑的ip,例如我这里的是:10.8.12.161
3)接下来手机端设置代理,如下图所示即可
手机连接到Charles时会弹出提示框是否连接,点击Allow允许即可:
完成了以上步骤就可以抓到https请求的数据了,效果图如下
第一个请求详细信息:
第二个请求如下
比如我需要这三个参数去发送请求,就可以在这里看到,接着在下面api用这三个参数去发送请求
若要抓取http请求,在Charles的菜单栏上选择“Proxy”->“Proxy Settings”,填入代理端口8888(注意,这个端口不一定填写8888,也可以写别的端口,但是需要记住这个段扩,
因为这里设置的允许接入的端口,手机端配置的时候需要用到),并且勾上”Enable transparent HTTP proxying” 就可以了。
如何用Charles进行打断点:(有时候需要有这样的需求,比如我使用微信的三方登录时候需要code参数值,但是这种code只能使用一次即失效,所以我需要截取手机微信登录拿到code,这时候就需要使用Charles添加断点)
1)用Charles抓包发起一次接口请求
2)对要打断点的接口右键,选择【Breakpoints】
设置之后,点击Charles菜单【Proxy】-【Breakpoints Settings】即可看到需要断点的请求
参考文章:https://zhubangbang.com/charlesproxy
https://blog.csdn.net/victor_cindy1/article/details/77947437