ارسال ترافیک وب یک برنامهی خاص به یک پروکسی سرور به کمک FiddlerCore
نویسنده: وحید نصیری
تاریخ: ۱۳۹۲/۱۰/۲۶ ۱۲:۱۰
آدرس: www.dntips.ir
| مطالب | ۳۶۹۴ |
| نویسندگان | ۲۷۶ |
| گروههای مطالب | ۱۰۲۴ |
| نقشههای راه | ۱۱۹ |
| دورهها | ۱۴ |
| اشتراکها | ۱۷۹۱۴ |
using System;
using System.Net;
using System.Threading;
using Fiddler;
using System.Net.Security;
namespace FiddlerTest
{
class Program
{
static void beforeRequest(Session oSession)
{
}
static void Main(string[] args)
{
try
{
startFiddlerApplication();
Console.WriteLine("FiddlerCore started on port " + FiddlerApplication.oProxy.ListenPort);
Console.WriteLine("Press any key to exit");
Console.ReadKey();
}
finally
{
shutdownFiddlerApplication();
}
}
static void onLogString(object sender, LogEventArgs e)
{
Console.WriteLine("** LogString: " + e.LogString);
}
static void onNotification(object sender, NotificationEventArgs e)
{
Console.WriteLine("** NotifyUser: " + e.NotifyString);
}
static void onValidateServerCertificate(object sender, ValidateServerCertificateEventArgs e)
{
if (SslPolicyErrors.None == e.CertificatePolicyErrors)
return;
Console.WriteLine("invalid certificate: {0}", e.ServerCertificate.Subject);
e.ValidityState = CertificateValidity.ForceValid;
}
static void shutdownFiddlerApplication()
{
FiddlerApplication.OnNotification -= onNotification;
FiddlerApplication.Log.OnLogString -= onLogString;
FiddlerApplication.BeforeRequest -= beforeRequest;
FiddlerApplication.OnValidateServerCertificate -= onValidateServerCertificate;
FiddlerApplication.oProxy.Detach();
FiddlerApplication.Shutdown();
Thread.Sleep(500);
}
private static void startFiddlerApplication()
{
FiddlerApplication.OnNotification += onNotification;
FiddlerApplication.Log.OnLogString += onLogString;
FiddlerApplication.BeforeRequest += beforeRequest;
FiddlerApplication.OnValidateServerCertificate += onValidateServerCertificate;
FiddlerApplication.Startup(5656,
FiddlerCoreStartupFlags.RegisterAsSystemProxy |
FiddlerCoreStartupFlags.MonitorAllConnections |
FiddlerCoreStartupFlags.CaptureFTP); // proxy server on 5656
}
}
} static void beforeRequest(Session oSession)
{
//send each request to the next proxy
oSession["X-OverrideGateway"] = "socks=" + IPAddress.Loopback + ":" + 2002; //socks on 2002
}
// OnBeforeRequest oSession.oFlags["x-AutoAuth"] = @"domain\user:password";