charles抓包中 有趣的断点,Rewrite,Map Local功能

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Tester_xjp/article/details/82935875

今天闲来无事 给大家介绍一下charles中一些有趣的功能。

事情起因是这样的,在2018年的某某一天,小编的同学,给小编发了一个截图,如下。

小编看到这个截图之后,发现跟真实的相差无几,应该不是P图,所以小编就觉得他应该是利用抓包工具修改了响应返回的参数,然后在对Q币的余额进行了修改,最后在静态界面,截图下来。

于是小编教大家如何修改静态的返回响应,这个小编这里介绍一下使用charles修改(其实fiddler也可以)

一、利用charles修改返回的响应。

1.首先,你需要确保你安装的charles能够抓取手机设备的https协议(这个不是本文的重点,自行百度,很简单的,不过ios设备,需要及的关于手机哪里,信任一下颁发的ca证书)

2.确定是在那个接口修改,我们看下图可以知道,当我们从图1到图2的过程,这个Q币显示了出来,所以小编觉得,Q币数量返回的接口,一定是在这里产生的,也就是我们点击图片1,圈记那个余额的操作。

3.确定了接口是那个操作产生的之后,我们这个时候,将charles里面,多余的数据清除(点击那个扫帚即可),然后在点击图片1中圈记的那个余额(界面会从图片1到图片2)

4.这个时候我们在返回charles上面查看,果然,发现了有个类似于扣币的返回数据,当然,小编这里是“131452070,”

5.我们知道了这个数据是那个请求之后,之后我们就开始设置断点了,鼠标左键点击这个请求,然后选择“BreakPoints”(点击一次就行了,点击多次会移除) ,如果是已经好了的,显示是一个“√”的状态

6.之后我们点击“proxy”-->"BreakPoints Setting",我们就能看到我们刚才添加的这个请求

7.双击点击这个请求,在query这个输入框中,输入“*”(意思 是不管参数是啥,都会进行断点,这里不能填成跟实际的一样,因为有些实际的参数有时间戳类似的 ,时间过了就会变,所以不建议那样写死),当然因为我们只是修改Q币的返回值,所以我们只需要勾选,Respone就可以了,之后点击Ok保存即可

8.这个时候我们的手机再次从图片1,也就是图片1圈记的那个余额,这个时候,我们看到手机的界面图片2已经出现,但是Q币余额一直没有显示出来,而charles中,我们点击那个Edit Respone

9.如果你第八步没有超时的话(因为客户端接受你返回的响应有个时间范围,如果你超过了,就算你将拦着的响应再次释放发送给客户端,他也不会接受,所以我们需要在最短的时间内,修改我们需要的东西,然后在点击“execute”释放这个响应,让客户端得到数据),这个时候 ,你的手机中 图片2应该是这个样子的。

好了 这个时候 修改响应的任务成功了。于是小编也发了一个图片给我同学。

二、相对于第一种方式,小编在想,有没有可能,让他这个程序,自动帮我修改 替换我的Q币值呢?就不要每次自己拦截下来自己手动进行修改了,而且如果可以做成这样,就算我拿手机给我同学看,他每次点进去查看我的Q币,也是经过charles代理后替换的值,这样他肯定没话说  岂不是更加真实?哈哈哈,说着说着,小编研究了一下,实际上我们charles确实有这个功能,也就是Rewrite

1.首先,确定我们需要改变的接口,将他的地址  以及响应  保存到一个地方

2.Tools->Rewrite,记得勾选,在点击apple

a.location中,填写我们刚才保存的请求接口信息,http还是https。以及host,以及path路径,另外query最好填*

b.Rewrtie中,type填写body,另外我们只需要勾选Respone,需要替换的值“16370”(这里是服务器返回的正确值),下面那个填,你需要修改成多少。。。

3.点击保存之后,接下来,你每次点击查看自己的Q币,都是显示成你修改的那么多,这样是不是特别真实??当然你如果关掉charles代理或者使用自己的网络数据访问的话,返回的数据就不会发生改变了,这里只是charles自动帮你把响应中的参数进行了替换。不过这个时候,拿去给同学看的时候,他们自己点击查看到的Q币就是那么多,所以小编觉得他们百分之八十的人,应该都会信了,毕竟你是实时访问,实时就是你修改后的Q币值。

三、另外一个就是将响应保存到本地,然后稍微修改一下,之后charles就不会访问服务器,而是采用你本地的响应进行返回给客户端,也就是我们说的Map Local

这里就不做太多的详细介绍了,直接举例子吧,比如这个微信流水。

点击这个请求,右键,选择save Respone 保存的文件名称为微信流水,之后我们点开这个流水,查看到,发现格式有点乱,没关系,我们百度搜索json在线格式化,将文档中的内容copy下来,放到,进行格式化,我们可以看到下面的内容,知道了支出跟收入是那些字段之后,我们通通修改,加2个0(可以直接在文档中,找到对应位置,修改即可),在这里我只是修改下支付跟收入,其他的流水笔数什么的,我就没做细细的修改了。

之后我们将修改完的微信流水文档保存,之后在charles中,点击刚才那个流水的接口,之后右键有个Map Local,点击她之后弹框出来了。同样的这里讲Query输入框中修改成"*",之后那个local path选择我们刚才的那个微信流水文档,之后点击保存

最后,我们访问微信流水,就是我们统一修改后的参数了,是不是很有趣?流水秒变几十万,由于每次他都会取本地的返回响应,所以别说是截图  就算你录制视频都没啥问题。当然,小编这里只修改了支出和收入 ,你自己需要修改下流水笔数,以及下方,数据需要对应上才可以

最后,以后发现了更多好玩的跟大家一起分析,今天这个教程到此结束,有不懂的可以联系微信17673231234

猜你喜欢

转载自blog.csdn.net/Tester_xjp/article/details/82935875