学习笔记之Charles抓包工具使用以及抓取API接口

抓包(Packet Capture),实际上就是对网络请求(包括发送与接收)的数据包进行截获、重发、编辑、转存等操作,在Android下,也经常被用来进行数据截取等。学会抓包之后,获取某个App的API就是轻而易举的事了,当然,现在有很多App,都对API进行了加密验证,例如Mac校验。所以在这种条件下,调用人家的API就困难得多了。

抓包工具

抓包工具比较常见的是Fiddler,Wireshark等,个人比较喜欢Charles,官网,界面简洁人性化,只做数据截取的话,足够用了,并且同时支持Windows,Mac,Linux。下面只介绍在Windows下如何利用Charles进行抓包。官网下载链接:https://www.charlesproxy.com/download 

主界面



主机允许代理模式

菜单栏Proxy -> Proxy settings,Port设置一个不与电脑其他端口冲突的端口号,比如8888,并勾选Enable transparent HTTP proxying,点击OK,这样,就允许了HTTP代理模式。


主机ip地址

开始->运行->输入cmd->ipconfig 得到主机的ip地址。



客户端设置代理

Android须和主机处于同一个局域网下(连同一个路由器,同网段)。在Android中打开设置->WLAN->修改当前连接的Wifi->打开代理(手动)->输入主机ip地址及代理端口号->保存

如图手机客户端配置到此

截获数据包

前面设置完毕之后,当Android,有进行网络请求时,那么Charles可能会弹出一个对话框,确认是否允许代理,点击Allow,表示允许。如图


这个时候,请求的地址就会出现在左侧的structure栏里面,点击可以查看具体请求的信息。


HTTPS

HTTPS请求,响应数据可能会出现乱码,这时候就需要安装Charles的CA证书,下载后解压,双击crt文件,选择总是信任就可以了,在版本4以上安装证书不需要到官网下载,在charlses->Help->SSLProxying->InstallCharlesRootCertificate来安装证书,只要证书状态为没问题就是安装成功。如图


当然如果要抓取Android设备上的HTTPS请求,需要在Android上也安装一个证书,在浏览器输入这个网址:http://charlesproxy.com/getssl ,点击安装即可。


到此如果你的乱码问题还是没有解决,那么你需要在charles->proxy->SSL Proxying Setting 配置,勾选Enable SSL Proxying 并却Add Host:443,Prot:* 如图


至此Charlse的基本配置已经完成,抓取接口已经没有问题啦(如果不需要抓取电脑上的API接口,可以在Proxy->WindowsProxy勾选去掉,默认是选择的),当然charles还有其他挺多功能,比如模拟网速慢,断点,数据过滤,重定向等功能,这里就不一一介绍了,有兴趣的同学自行研究哈~

PS:官网下载的Charles是付费的,但是你可以度娘下载补丁包覆盖,这里提供Charles4.0.2-64位补丁包,在安装路径下的Charles\lib\替换charles.jar,这样就是破解版啦


阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/zhuiyi1820/article/details/53736173
个人分类: 学习笔记
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

关闭
关闭
关闭