C# 调用FiddlerCore实现http/https抓包

这篇具有很好参考价值的文章主要介绍了C# 调用FiddlerCore实现http/https抓包。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

FiddlerCore是 Telerik 的跨平台 .NET 库,它允许捕获和修改 HTTP/HTTPS 流量。使用 FiddlerCore 的一些最流行的应用程序是 Telerik Fiddler(基于 .NET Framework 并在 Windows 上运行)和 Fiddler Everywhere(基于 .NET Core 并在 Windows、Mac 和 Linux 上运行)。

关键信息:FiddlerCore跨平台.net库,可以捕获http/https

NuGet安装:

c# fiddler,C#,.net

界面设计:

c# fiddler,C#,.net

启动捕获:

        public void startFiddler()
        {
            if (!FiddlerApplication.IsStarted())
            {
                FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
                FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
                FiddlerApplication.Startup(8888, true, true, true);
            }
            else
            {
                appendtext("fiddler is running...");
            }
        }

 停止捕获:

        public void stopFiddler()
        {
            if (FiddlerApplication.IsStarted())
            {
                FiddlerApplication.Shutdown();

            }
        }

安装证书:

        public void install()
        {
            if (!CertMaker.rootCertExists())
            {
                CertMaker.createRootCert();
                CertMaker.trustRootCert();
            }
        }

证书移除:

        public void remove()
        {
            if (CertMaker.rootCertExists())
            {
                CertMaker.removeFiddlerGeneratedCerts();
            }
        }

两个事件函数:

        private void FiddlerApplication_BeforeRequest(Session oSession)
        {
            if (oSession.RequestMethod == "POST"||oSession.RequestMethod=="GET")
            {

                string url = oSession.fullUrl;
                string body = oSession.GetRequestBodyAsString();
                string header = oSession.RequestHeaders.ToString();
                appendtext(url);
                appendtext(header);
                appendtext(body);

            }
        }

        private void FiddlerApplication_AfterSessionComplete(Session oSession)
        {
            if (oSession.RequestMethod == "POST" || oSession.RequestMethod == "GET")
            {
                string body = oSession.GetResponseBodyAsString();
                appendtext(body);
                appendtext(tmp);
            }

        }

全部代码:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using Fiddler;
namespace Fiddler抓包
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        static string tmp = "-------------------------------------";

        private void btn_start_Click(object sender, EventArgs e)
        {
            startFiddler();
        }

        public void startFiddler()
        {
            if (!FiddlerApplication.IsStarted())
            {
                FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
                FiddlerApplication.BeforeRequest += FiddlerApplication_BeforeRequest;
                FiddlerApplication.Startup(8888, true, true, true);
            }
            else
            {
                appendtext("fiddler is running...");
            }
        }


        private void FiddlerApplication_BeforeRequest(Session oSession)
        {
            if (oSession.RequestMethod == "POST"||oSession.RequestMethod=="GET")
            {

                string url = oSession.fullUrl;
                string body = oSession.GetRequestBodyAsString();
                string header = oSession.RequestHeaders.ToString();
                appendtext(url);
                appendtext(header);
                appendtext(body);

            }
        }

        private void FiddlerApplication_AfterSessionComplete(Session oSession)
        {
            if (oSession.RequestMethod == "POST" || oSession.RequestMethod == "GET")
            {
                string body = oSession.GetResponseBodyAsString();
                appendtext(body);
                appendtext(tmp);
            }

        }

        public void stopFiddler()
        {
            if (FiddlerApplication.IsStarted())
            {
                FiddlerApplication.Shutdown();

            }
        }

        public void install()
        {
            if (!CertMaker.rootCertExists())
            {
                CertMaker.createRootCert();
                CertMaker.trustRootCert();
            }
        }

        public void remove()
        {
            if (CertMaker.rootCertExists())
            {
                CertMaker.removeFiddlerGeneratedCerts();
            }
        }

        public void appendtext(string value)
        {
            if (InvokeRequired)
            {
                this.Invoke(new Action(() =>
                {
                    richTextBox1.AppendText(value + "\r\n");
                }));
            }
        }

        private void btn_stop_Click(object sender, EventArgs e)
        {
            stopFiddler();
        }

        private void btn_install_Click(object sender, EventArgs e)
        {
            install();
        }

        private void btn_remove_Click(object sender, EventArgs e)
        {
            remove();
        }

        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            
            
            
            stopFiddler();
            if (FiddlerApplication.oProxy != null)
            {
                if (FiddlerApplication.oProxy.IsAttached)
                    FiddlerApplication.oProxy.Detach();
            }
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            this.splitContainer1.SplitterDistance = this.Height / 7;
        }

        
    }
}

效果图:

c# fiddler,C#,.net

源码:https://download.csdn.net/download/cyberarmy/87999632文章来源地址https://www.toymoban.com/news/detail-525360.html

到了这里,关于C# 调用FiddlerCore实现http/https抓包的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Fiddler工具 — 18.Fiddler抓包HTTPS请求(一)

    1、Fiddler抓取HTTPS过程 第一步: Fiddler截获客户端发送给服务器的HTTPS请求,Fiddler伪装成客户端向服务器发送请求进行握手 。 第二步: 服务器发回相应,Fiddler获取到服务器的CA证书, 用根证书(这里的根证书是CA认证中心给自己颁发的证书)公钥进行解密, 验证服务器数据

    2024年02月21日
    浏览(47)
  • HTTPS 之fiddler抓包--jmeter请求

    一、浅谈HTTPS 我们都知道HTTP并非是安全传输,在HTTPS基础上使用SSL协议进行加密构成的HTTPS协议是相对安全的。目前越来越多的企业选择使用HTTPS协议与用户进行通信,如百度、谷歌等。HTTPS在传输数据之前需要客户端(浏览器)与服务端(网站)之间进行一次握手,在握手过

    2024年02月09日
    浏览(42)
  • Fiddler抓包之【 抓取https请求 】详解教程

    引言 概况 基本原理 抓HTTPS的原理 HTTPS请求两类 Fiddler抓包要求 总结 写在最后 在日常测试中,不管是功能测试还是接口测试,避免不了抓包。抓包工具有很多,这里只讲fiddler的使用,并且是对https请求的抓取。 抓包之前,先了解一下Fiddler。 Fiddler是一款免费且功能强大的数

    2024年02月07日
    浏览(58)
  • fiddler 手机抓包(含https) 完整流程

    一.使用任一浏览器搜索【fiddler下载安装】,并下载fiddler 安装包。 二.fiddler安装包下载成功后,将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下,双击文件夹中的【fiddler.exe】文件 三.双击文件后,可以按照下面的流程进行安装。如果是汉化版的那

    2024年02月14日
    浏览(40)
  • Fiddler抓包工具之fiddler设置抓HTTPS的请求&证书安装

    基础配置: 路径:启动Fiddler 》Tools》Options》HTTPS 注意:Option更改完配置需重启Fiddler才能生效 选中\\\"Decrpt HTTPS traffic\\\",    Fiddler就可以截获HTTPS请求,如果是第一次会弹出证书安装提示,若没有弹出提示,按照路径依次点击,使系统信任证书: Actions》Trust Root Certificate。另外,

    2024年02月16日
    浏览(49)
  • fiddler 手机抓包工具(含https) 完整流程

    第一部分:下载并安装fiddler 一.使用任一浏览器搜索【fiddler下载安装】,并下载fiddler 安装包。 二.fiddler安装包下载成功后,将下载的fiddler压缩包解压到自定义文件夹【fiddler】或者解压到当前文件夹下,双击文件夹中的【fiddler.exe】文件 三.双击文件后,可以按照下面的流程

    2024年02月03日
    浏览(42)
  • ​《吐血整理》进阶系列教程-拿捏Fiddler抓包教程(9)-Fiddler如何设置捕获Https会话​

    由于近几年来各大网站越来越注重安全性都改成了https协议,不像前十几年前直接是http协议直接裸奔在互联网。还有的小伙伴或者童鞋们按照上一篇宏哥的配置都配置好了,想大展身手抓一下百度的包,结果一试傻眼了,竟然毛都没有抓到,怀疑是不是上了宏哥的当了。不是

    2024年02月15日
    浏览(61)
  • Fiddler抓包工具安装后抓取不到Https协议解决办法!!!

    Fiddler刚刚下载安装好后,默认不支持https协议的,想要抓取https,需要手动设置 一、首先点击Tools按钮中的Options…选项  二、选择HTTPS选项,进行图如下三项勾选,最后点击Actions按钮 三、选择将证书保存在桌面  四、保存成功可以在我们的桌面看见证书   五、最后我们需要

    2024年02月16日
    浏览(41)
  • 【Http协议①】认识http协议,学会使用fiddler抓包工具进行抓包.

    前言: 大家好,我是 良辰丫 ,今天我们一起来学习http协议,http协议是应用层的协议,应用层是最接近程序员的,那么,http协议到底是什么呢?我们往下看.💞💞 🧑个人主页:良辰针不戳 📖所属专栏:javaEE初阶 🍎励志语句:生活也许会让我们遍体鳞伤,但最终这些伤口会成为我们

    2024年02月05日
    浏览(50)
  • fiddler抓包问题记录,支持https、解决 tunnel to 443

    fiddler抓包教程,如何抓取HTTPS请求,详细教程 1. 不能正常访问页面(所有https都无法访问) 解决方案:查看下面配置是否正确 Rules-customization 找到 OnBeforeRequest 方法,在方法最后添加以下代码块 2.tunnel to 443(部分https无法访问) 解决方案:确认证书安装成功,并信任证书 下

    2024年02月11日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包