前两天找ios旧版app的接触到这个软件:Thor,恰巧有一个博主有介绍Thor和分享了一些过滤器,看了之后这让我对Thor产生了很大的兴趣,于是就下载了这个软件(其实也是闲的)。
简单使用了两天,也只是普通的抓包,像我这种从未接触过相关内容的人基本上看不懂那些抓到的数据包。还记得之前Windows的Fiddler抓包工具,当时是用人用来改数据然后撸实物,改各种网页的数据什么的…Thor也可以做到,主要的操作是设置断点,在响应信息体回传的时候修改返回的数据等等。如果只是普通的抓包那肯定是不够的,Thor强大之处就是可以使用过滤器。
下面以修改bilibili的myinfo信息体回传修改为例吧。
设置断点那些需要极高的专业知识…然而我连网络是怎么连接的都不知道,所以我是拆了一个其他人的过滤器研究了一下,大概知道了原理所在,但是要真正的去写一个带断点的过滤器还是不会…
一.过滤器的普通设置:
1.抓包协议:HTTP
以及HTTPS
2.匹配http的方法:GET
和POST
3.包含的域名:
1 | api.bilibili.com |
4.包含的关键字:
1 | /pgc/view/app/season |
其中包含的域名和关键字的作用就是使用该过滤器之后Thor只抓这些匹配的数据包
二.设置断点
这一块我找了很久的教程,就没有看到过…
首先要新建一个断点,命名无所谓,最主要的是写请求阶段:
1 | TCP连接前 |
嗯,这么五大部分…我都不知道怎么去写,但是我拆包了解了响应信息体回传前是什么原理。
新建一个响应体回传前的规则:
判断条件为空,也就是无论怎么样我都会去执行条件满足的操作
备注无所谓
然后是条件满足的时候应该怎么去做,下面以替换等级信息体为例:
1 | ^@rsp.bodyText "level":\d+" "level":8" |
其中^是操作符:替换或插入
操作对象:@rsp.bodyText
正则表达式:level”:\d+
替换值:level”:8
这里的作用就是抓到level信息体之后替换掉其中的值,但是有一点是,咱们的信息是在服务器上面的,软件显示多少我们能够更改,但是其实际是没用的…所以只是娱乐娱乐。
还有一些规则:
1 | ^@rsp.bodyText "type":\d+" "type":2" |
都是照搬的别人的,我不会什么正则表达式…额,也就大概了解一下其中的原理,搞来搞去我也没啥兴趣了…要先从海量的数据包中找到自己要修改的东西实在太累了,往往抓一次两次是不够的,需要很多很多次的调试才能得到想要的结果,这点还是很佩服写出哔哩哔哩这个过滤器的作者。