Добрый день! Помогите, столкнулся с проблемой, с с# прежде не работал, понадобилось написать сниффер трафика, выбор пал на fiddlerCore. В сети нашел статью
https://weblog.west-wind.com/posts/2014/jul/29/usi... начал делать все как в ней, установил саму библиотеку, успешно подключил. После начал пытаться сделать хоть что-то рабочее. Перенес функции из статьи в файл (что получилось ниже)
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Fiddler;
namespace SKIE{
class Program{
private void FiddlerApplication_AfterSessionComplete(Session sess)
{
// Ignore HTTPS connect requests
if (sess.RequestMethod == "CONNECT")
return;
if (CaptureConfiguration.ProcessId > 0)
{
if (sess.LocalProcessID != 0 && sess.LocalProcessID != CaptureConfiguration.ProcessId)
return;
}
if (!string.IsNullOrEmpty(CaptureConfiguration.CaptureDomain))
{
if (sess.hostname.ToLower() != CaptureConfiguration.CaptureDomain.Trim().ToLower())
return;
}
if (CaptureConfiguration.IgnoreResources)
{
string url = sess.fullUrl.ToLower();
var extensions = CaptureConfiguration.ExtensionFilterExclusions;
foreach (var ext in extensions)
{
if (url.Contains(ext))
return;
}
var filters = CaptureConfiguration.UrlFilterExclusions;
foreach (var urlFilter in filters)
{
if (url.Contains(urlFilter))
return;
}
}
if (sess == null || sess.oRequest == null || sess.oRequest.headers == null)
return;
string headers = sess.oRequest.headers.ToString();
var reqBody = sess.GetRequestBodyAsString();
// if you wanted to capture the response
//string respHeaders = session.oResponse.headers.ToString();
//var respBody = session.GetResponseBodyAsString();
// replace the HTTP line to inject full URL
string firstLine = sess.RequestMethod + " " + sess.fullUrl + " " + sess.oRequest.headers.HTTPVersion;
int at = headers.IndexOf("\r\n");
if (at < 0)
return;
headers = firstLine + "\r\n" + headers.Substring(at + 1);
string output = headers + "\r\n" +
(!string.IsNullOrEmpty(reqBody) ? reqBody + "\r\n" : string.Empty) +
Separator + "\r\n\r\n";
BeginInvoke(new Action<string>((text) =>
{
txtCapture.AppendText(text);
UpdateButtonStatus();
}), output);
}
void Start()
{
if (tbIgnoreResources.Checked)
CaptureConfiguration.IgnoreResources = true;
else
CaptureConfiguration.IgnoreResources = false;
string strProcId = txtProcessId.Text;
if (strProcId.Contains('-'))
strProcId = strProcId.Substring(strProcId.IndexOf('-') + 1).Trim();
strProcId = strProcId.Trim();
int procId = 0;
if (!string.IsNullOrEmpty(strProcId))
{
if (!int.TryParse(strProcId, out procId))
procId = 0;
}
CaptureConfiguration.ProcessId = procId;
CaptureConfiguration.CaptureDomain = txtCaptureDomain.Text;
FiddlerApplication.AfterSessionComplete += FiddlerApplication_AfterSessionComplete;
FiddlerApplication.Startup(8888, true, true, true);
}
void Stop()
{
FiddlerApplication.AfterSessionComplete -= FiddlerApplication_AfterSessionComplete;
if (FiddlerApplication.IsStarted())
FiddlerApplication.Shutdown();
}
static void Main(string[] args){
}
}
}
Попытался скомпилировать и на меня посыпалось десяток ошибок, они ниже:
1>------ Сборка начата: проект: Test, Конфигурация: Debug Any CPU ------
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(16,17,16,37): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(18,72,18,92): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(22,39,22,59): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(24,48,24,68): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(28,17,28,37): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(32,34,32,54): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(33,37,33,47): error CS1579: Оператор foreach не работает с переменными типа "?", так как "?" не содержит открытого определения для "GetEnumerator".
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(39,31,39,51): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(40,43,40,50): error CS1579: Оператор foreach не работает с переменными типа "?", так как "?" не содержит открытого определения для "GetEnumerator".
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(66,29,66,38): error CS0103: Имя "Separator" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(70,17,70,27): error CS0103: Имя "txtCapture" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(71,17,71,35): error CS0103: Имя "UpdateButtonStatus" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(68,13,68,24): error CS0103: Имя "BeginInvoke" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(77,17,77,34): error CS0103: Имя "tbIgnoreResources" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(78,17,78,37): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(80,17,80,37): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(82,32,82,44): error CS0103: Имя "txtProcessId" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(94,13,94,33): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(95,13,95,33): error CS0103: Имя "CaptureConfiguration" не существует в текущем контексте.
1>C:\Users\CJ\documents\visual studio 2015\Projects\Test\Test\Program.cs(95,50,95,66): error CS0103: Имя "txtCaptureDomain" не существует в текущем контексте.
========== Сборка: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========
Что делать? Как заставить сие чудо работать? Извиняюсь за нубские вопросы, просто с сей технологией дел не имел (c#). Буду благодарен любой помощи и совету.