コード例 #1
0
        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.");
        }
コード例 #2
0
        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.");
        }