In my program; I use Fiddler Core. When ran on a pc; it set's the proxy as it should but when trying to browse the network with the proxy on; i'm getting "Your connection is Not private"; error message on all browsers. Please see attached photos for reference. Here is my running code:
private void stopfiddler()
{
if (!FiddlerApplication.IsStarted())
{
}
else
{
FiddlerApplication.Shutdown();
}
}
public static void SavePreferences()
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
string cert = ConfigurationManager.AppSettings["fiddler.certmaker.bc.cert"];
string key = ConfigurationManager.AppSettings["fiddler.certmaker.bc.key"];
if (cert == null || key == null)
{
config.AppSettings.Settings.Add("fiddler.certmaker.bc.cert", FiddlerApplication.Prefs.GetStringPref("fiddler.certmaker.bc.cert", null));
config.AppSettings.Settings.Add("fiddler.certmaker.bc.key", FiddlerApplication.Prefs.GetStringPref("fiddler.certmaker.bc.key", null));
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
else
{
config.AppSettings.Settings["fiddler.certmaker.bc.cert"].Value = FiddlerApplication.Prefs.GetStringPref("fiddler.certmaker.bc.cert", null);
config.AppSettings.Settings["fiddler.certmaker.bc.key"].Value = FiddlerApplication.Prefs.GetStringPref("fiddler.certmaker.bc.key", null);
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection("appSettings");
}
}
public static bool IsCertCreated()
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
string cert = ConfigurationManager.AppSettings["fiddler.certmaker.bc.cert"];
string key = ConfigurationManager.AppSettings["fiddler.certmaker.bc.key"];
if (cert != null && key != null)
{
return true;
}
else
{
return false;
}
}
public static void RemoveFiddlerPreferences()
{
Configuration config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
config.AppSettings.Settings.Remove("fiddler.certmaker.bc.cert");
config.AppSettings.Settings.Remove("fiddler.certmaker.bc.key");
config.Save(ConfigurationSaveMode.Modified);
ConfigurationManager.RefreshSection(config.AppSettings.SectionInformation.Name);
}
public static void LoadPreferences()
{
string cert = ConfigurationManager.AppSettings["fiddler.certmaker.bc.cert"];
string key = ConfigurationManager.AppSettings["fiddler.certmaker.bc.key"];
if (!string.IsNullOrEmpty(cert) && !string.IsNullOrEmpty(key))
{
FiddlerApplication.Prefs.SetStringPref("fiddler.certmaker.bc.cert", cert);
FiddlerApplication.Prefs.SetStringPref("fiddler.certmaker.bc.key", key);
}
}
private void Installcert()
{
if (IsCertCreated())
{
}
else
{
BCCertMaker.BCCertMaker certProvider = new BCCertMaker.BCCertMaker();
certProvider.CreateRootCertificate();
X509Certificate2 rootCert = certProvider.GetRootCertificate();
// Create a certificate store and add the root certificate to it
X509Store store = new X509Store(StoreName.Root, StoreLocation.LocalMachine);
store.Open(OpenFlags.ReadWrite);
store.Add(rootCert);
SavePreferences();
}
}
private void Remove()
{
using (var store = new X509Store(StoreName.Root, StoreLocation.LocalMachine))
{
store.Open(OpenFlags.ReadWrite);
var certificatesToRemove = store.Certificates
.Cast<X509Certificate2>()
.Where(c => c.SubjectName.Name.ToLower().Contains("DO_NOT_TRUST_FiddlerRoot"))
.ToList();
foreach (var cert in certificatesToRemove)
{
string certPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, cert.Thumbprint + ".cer");
if (File.Exists(certPath))
{
File.Delete(certPath);
}
store.Remove(cert);
}
RemoveFiddlerPreferences();
store.Close();
MessageBox.Show("Deleted");
}
}
private void appentext(string value)
{
if (InvokeRequired)
{
return;
}
}
So; in one of my applications; I am attempting to try to find text within a decoded response. The problem is, that response changes every day. However, the format as you see below always stays the same BEFORE the numbers that are underlined. Only the numbers change. The end goal is to find this response; and then print it to a textbox. How can I accomplish this?
I keep getting this error, no matter what I'm doing... I've tried both SaveRequestBody and SaveResponseBody. What am I doing wrong?
Is it possible with Fiddler Core to completely replace a response like its possible with Fiddler Classic to do in the "RAW" section if you put a breakpoint before the Response?
Thanks
.DecryptSSL()Will decrypt all HTTPS traffic, which is what I don't want. I only need to decrypt on specific URLs.
static function OnBeforeRequest(oSession: Session) {
if (oSession.uriContains("/teste.json")) {
oSession["x-breakresponse"]="uri";
}
Hello, I'm trying to output the HTTPVersion in FiddlerApplication.AfterSessionComplete,
but sites corresponding to HTTP/2 always show up as HTTP/1.1.
source code:
FiddlerApplication.AfterSessionComplete += delegate (Session session)I have tested using online unpkg https://nuget.telerik.com/v3/index.json and local file dir, Neither can be installed. The screenshot is as follows. Please help troubleshoot the problem.