public void Stop() { Logger.Info("Stopping request obfuscator..."); foreach (var @delegate in _delegates) { Instance -= @delegate; } if (FiddlerApplication.IsStarted()) { FiddlerApplication.Shutdown(); } UninstallCertificate(); _delegates.Clear(); Logger.Info("Stopped."); }
public void Start() { LoggerConfig.Init(); Logger = LogManager.GetCurrentClassLogger(); Logger.Info("Starting request obfuscator..."); FiddlerApplication.Shutdown(); InstallCertificate(); var type = typeof(IApiClient); var apiClients = AppDomain.CurrentDomain .GetAssemblies() .SelectMany(s => s.GetTypes()) .Where(p => type.IsAssignableFrom(p) && !p.IsAbstract); foreach (var api in apiClients) { var apiClient = Activator.CreateInstance(api) as IApiClient; var apiBuilder = new ApiBuilder(); apiClient.Configure(apiBuilder); foreach (var handler in apiBuilder.Build()) { Instance += session => handler(session); } } const FiddlerCoreStartupFlags flags = FiddlerCoreStartupFlags.AllowRemoteClients | FiddlerCoreStartupFlags.CaptureLocalhostTraffic | FiddlerCoreStartupFlags.DecryptSSL | FiddlerCoreStartupFlags.MonitorAllConnections; const short proxyPort = 8888; FiddlerApplication.Startup(proxyPort, flags); Logger.Info("Started."); }