
Fiddler4 抓包 使用C# Fiddler Core 写一个插件
新建dll程序,选择类库
首先需要去NuGet安装Fiddler core的核心依赖
新建一个类,这里假定 MaiCheSettingView,继承IFiddlerExtension
则会重载几个函数这里只说要用到的:
OnLoad() 插件启动时会调用,你可以在里面做一些初始化操作
OnBeforeUnload 在插件卸载之前调用的函数
BeforeResponse事件,这个是当响应体到达之前调用
解释一下BeforeResponse的过程:
正常的http请求过程:
Fiddler的请求简单过程:
知道其原理后,我们只需要做一件事,实现BeforeResponse事件以修改服务器返回的内容
插件有界面,可以新建一个用户界面
右击项目>添加>用户控件
在插件加载事件内加载界面
public class MaiCheSettingView : IFiddlerExtension
{
public void OnLoad()
{
//添加界面 界面可以写你想写的功能 ,这里不讲
view = new UserControl1();
view.Dock = DockStyle.Fill;
var tab = new TabPage();
tab.Text = "插件界面";
tab.Controls.Add(view);
FiddlerApplication.UI.tabsViews.TabPages.Add(tab);
view.Click += usercontrol_Click;
//添加捕获http响应事件
FiddlerApplication.BeforeResponse += FiddlerApplication_BeforeResponse;
}
public void OnBeforeUnload()
{
}
}
实现FiddlerApplication_BeforeResponse 函数
//在收到请求结果之前捕获执行
private void FiddlerApplication_BeforeResponse(Session oSession)
{
//Session 中包含很多东西,服务器请求响应体 假设我想对指定url进行捕获修改然后返回
//判断这次请求返回的URL是不是我想要的网站请求
if (oSession.fullUrl.IndexOf("https://www.destiny.cool/api/getUser") <= -1)
{
return;
}
//数据解码
oSession.utilDecodeResponse();
//获取服务器返回的响应体
//oSession.responseBodyBytes是字节 GetResponseBodyAsString是字符串
//SaveResponseBody 是保存响应体 SaveResponse是保存整个响应请求
string resp = oSession.GetResponseBodyAsString();
//得到响应体后,假设就可以做你想做的,做完了再返回给客户端
oSession.utilSetResponseBody(resp);
}
然后编译DLL,打开Fiddler 的安装位置将DLL放到Scripts目录下,重启Fiddler插件加载成功!
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
本文是原创文章,采用 CC BY-NC-ND 4.0 协议,完整转载请注明来自 七龙
评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果