关于fiddlerscript暂时没在官方找到一个正常的文档,只知道是基于jscript .net的,并且在论坛看到一些使用例子。这里对目前知道的一些东西做一个整理。
关于fiddlerscript
打开fiddlerscript后右边点击可以看到当前的fiddlerscript,这个团队给其做了一个小型编辑器,实际是位于C:\Users\username\Documents\Fiddler2\Scripts
文件夹下的CustomRules.js
文件。
整个fiddlerscript位于一个Handles类中,fiddler在运行时会解析执行这个类中的回调函数,这些回调函数类似于在一个请求回复过程中的各个阶段做了hook,以此实现对请求与响应包在各个阶段时的修改,类似于chrome插件中通过addListener
在各个阶段进行插桩处理。具体的不同阶段可以在上方Go to栏查看,总共大概有9个,其中比较常用的就是onBeforeRequest
和onBeforeResponse
两个,分别是在发送请求前和将响应包交给网页前。一般通过在onBeforeRequest
中加入代码对请求参数进行处理,在onBeforeResponse
中加入代码处理相应参数。
相关语法与代码
fiddlerscript的语法基本和javascript差不太多,但是由于没有给出各种API的文档,无从知晓各种信息的类型与处理函数,这里也只是记录一下我遇到的,并且在网上查到的一些函数用法,仅供参考。
对某个url的请求下断点或做标记
1 | if(oSession.uriContains("example.com")){ |
以字符串方式获取请求的内容,以及一些处理操作
1 | var obody = oSession.GetRequestBodyString(); |
获取响应内容并修改等
1 | var obody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes);//获取响应内容 |
请求头信息处理
1 | var cookie_str = oSession.oRequest.headers["cookie"]; |
处理json格式响应
1 | var obody = System.Text.Encoding.UTF8.GetString(oSession.responseBodyBytes); |
构建新请求并发送
1 | //主要是请求头部分 |