Charles 抓包工具的简单使用

来源:互联网 发布:unix网络编程百度云 编辑:程序博客网 时间:2024/04/28 23:07

当我们看到一些APP做的非常棒的时候,常常会有一种想要仿写的冲动,但是往往人家的接口文档咱拿不到,所以没法实现。

在这里我想介绍一个软件叫Charles,本软件是专门用来抓包分析包的软件,我们可以通过这个软件拿到我们想要的一些数据进而实现,下面就简单介绍一下这个软件以及使用方法:

1、Charles 又叫青花瓷,在IOS 开发中常常用来抓包使用。我们可以用来拦截别人的软件的发送和请求的后端端口,字段等,方便自己私下学习。

   而且在自己开发的时候可以根据后端返回的response 拦截修改后再接收以便达到测试临界数据的作用,其实如果你够牛逼,还可以写脚本重复拦截抓取别人的数据进行分析。

2、安装  

安装Charles 软件的时候需要我们的mac首先是安装了Java环境的,安装完成后打开,会自动默认监控我们本地计算机的网络活动的数据,但是我们需要做的是检测移动端的数据所以需要把这两项勾选去掉(Mac OS X Proxy , Mozilla Firefox Proxy)。

3、监测数据

首先我们需要手机和电脑在同一个网段下,也就是说我们需要在同一个路由器下,或者可以电脑分享无线给手机用,我们在mac的偏好设置网络中找到本级的ip,然后在iPhone中的无线网设置中找到HTTP 代理手动,在服务器中输入mac的iP,在端口中输入8888,这样我们打开手机上的软件就能看到Charles软件提示allow 和 deny ,选择allow 后就可以看到有数据了。我们可以通过每次上拉下拉刷新获得更多的数据信息。

4、这里我们就拿头条作为实验吧,先点击垃圾桶,删除里面的数据,然后刷新首页我们就能看到拦截到很多的数据,找到我们需要的数据(这个过程可能比较麻烦,自己根据经验可以很轻松找到,也可以一个一个的看找到自己需要的),找到链接后粘贴到浏览器就可以看到我们拿到的json数据,然后去网上找一个json解析器,就能看到我们需要的数据了,然后自己很据每一个字段的进行仿写一下软件了。

        

注:有的APP的数据的进行了加密的,就算我们拦截到了也拿不到数据,所以一般不是数据特别敏感的的APP的数据我们都是能拿到的。


5、更改返回数据来进行测试临界的情况:

通过Charles软件可以让我们一个iOS前端的开发人员独立完成测试而不用拉过来一个后端进行一起的联调,并且各种特殊的维度,或者是临界账号也不用辛苦去找了,仅仅在自己的青花瓷上改改就能达到效果了。比如我们这个地方返回了nil 程序会不会崩溃,直接修改response就可以了,下面可以简单看一下操作过程:

把软件切换到结构页面(Structure),这里可以看到断点和调试信息:

然后找一个页面。这个页面本来应该返回是这样的:如上图上图 你先正常的打开这个页面把玩几下,这个青花瓷就会抓取很多接口和域名分类了。在这里找到你这个页面所属的域名分类应该不难。然后打上断点。这里要注意是在域名上打断点而不是在下面的单个请求上打断点。

再次用手机进入这个页面,就会通过你刚才打断点的那个域名来请求数据,就会被断点拦住,如下图所示。


右边的信息也很清晰,一开始可以编辑请求。如果点击单步执行,等一下相应回来了也可以编辑响应。


这里的有好几种查看的方式,但是推荐使用JSON Text看的比较清楚。 现在我们对拦截回来的数据进行修改,我把这些统计数据全改成999如下图

然后再次点击下方的Execute单步执行,更改后的数据就会像正常返回回来的数据那样显示到,APP的页面上展示。


这里只是简单的更改了一些数字,在页面显示更加直观。实际的操作中,你可以经常用来把某些值改为临界情况以看到App在处理这些临界状况时的反应,这样比找那些临界数据的测试账号成本要低得多。也可以把一些可能不会反回数值的字段找到,直接将里面的值删成nil,看看会不会报异常等等。

0 0