FiddlerCore是 Telerik 的跨平臺(tái) .NET 庫(kù),它允許捕獲和修改 HTTP/HTTPS 流量。使用 FiddlerCore 的一些最流行的應(yīng)用程序是?Telerik Fiddler(基于 .NET Framework 并在 Windows 上運(yùn)行)和?Fiddler Everywhere(基于 .NET Core 并在 Windows、Mac 和 Linux 上運(yùn)行)。
關(guān)鍵信息:FiddlerCore跨平臺(tái).net庫(kù),可以捕獲http/https
NuGet安裝:
界面設(shè)計(jì):
啟動(dòng)捕獲:
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();
}
}
安裝證書(shū):
public void install()
{
if (!CertMaker.rootCertExists())
{
CertMaker.createRootCert();
CertMaker.trustRootCert();
}
}
證書(shū)移除:
public void remove()
{
if (CertMaker.rootCertExists())
{
CertMaker.removeFiddlerGeneratedCerts();
}
}
兩個(gè)事件函數(shù):
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;
}
}
}
效果圖:
文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-525360.html
源碼:https://download.csdn.net/download/cyberarmy/87999632文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-525360.html
到了這里,關(guān)于C# 調(diào)用FiddlerCore實(shí)現(xiàn)http/https抓包的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!