become a web debugging virtuoso with fiddler
DESCRIPTION
PDC09-CL25. Become a Web Debugging Virtuoso with Fiddler. Eric Lawrence Program Manager Microsoft Corporation. Fiddler: Origins. Once upon a time…. Oh no! What happened?!?. There must be a better way…. Fiddler: Origins. Fiddler: Origins. Fiddler: Origins. Fiddler: Origins. +. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/1.jpg)
![Page 2: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/2.jpg)
![Page 3: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/3.jpg)
![Page 4: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/4.jpg)
![Page 5: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/5.jpg)
![Page 6: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/6.jpg)
![Page 7: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/7.jpg)
ApplicationsNetwork
APIsProxy Website
![Page 8: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/8.jpg)
![Page 9: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/9.jpg)
![Page 10: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/10.jpg)
+
![Page 11: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/11.jpg)
![Page 12: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/12.jpg)
![Page 13: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/13.jpg)
![Page 14: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/14.jpg)
Fiddler 2
Fiddler ScriptEngineFiddler ScriptEngine
Inspector2Inspector2
Inspector2Inspector2
IFiddlerExtension
IFiddlerExtension
IFiddlerExtension
IFiddlerExtension
Fiddler ProxyFiddler Proxy
Your FiddlerScript
Your FiddlerScript
Xceed*.dllXceed*.dll Makecert.exeMakecert.exe
You
r A
uto
mati
on
You
r A
uto
mati
on
![Page 15: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/15.jpg)
![Page 16: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/16.jpg)
![Page 17: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/17.jpg)
Internet Explorer
WinINET
Office
CryptoAPI WinHTTP
Fiddler
Firefox
Upstream Proxy
example.com
Firewall
![Page 18: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/18.jpg)
![Page 19: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/19.jpg)
Fiddler InternetInternet
![Page 20: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/20.jpg)
![Page 21: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/21.jpg)
Internet Explorer
WinINET
Office
CryptoAPI WinHTTP
Fiddler(Port 80)
Firefox
Upstream Proxy
IIS or Apache(Port 81)
Firewall
![Page 22: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/22.jpg)
Fiddler dynamically generates interception certificates chained to a self-signed root.
![Page 23: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/23.jpg)
![Page 24: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/24.jpg)
![Page 25: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/25.jpg)
![Page 26: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/26.jpg)
![Page 27: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/27.jpg)
![Page 28: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/28.jpg)
![Page 29: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/29.jpg)
![Page 30: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/30.jpg)
![Page 31: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/31.jpg)
Use WinDiff to compare HTTP requests and responses.
![Page 33: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/33.jpg)
![Page 34: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/34.jpg)
![Page 35: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/35.jpg)
Use Fiddler inspectors to
modify requests and responses….
![Page 36: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/36.jpg)
Flag, modify or remove headers from all requests and
responses.
![Page 37: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/37.jpg)
Create hand-built HTTP requests, or
modify and reissue a request previously captured.
![Page 38: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/38.jpg)
Replay previously captured or generated traffic.
![Page 39: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/39.jpg)
![Page 40: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/40.jpg)
static function OnBeforeRequest(oS: Session){
if (oS.uriContains(".aspx")) { oS["ui-color"] = "red";}
if (m_DisableCaching){ oS.oRequest.headers.Remove("If-None-Match"); oS.oRequest.headers.Remove("If-Modified-Since"); oS.oRequest["Pragma"] = "no-cache"; }}
![Page 41: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/41.jpg)
static function OnBeforeResponse(oS: Session) {
oS.utilDecodeResponse(); oS.utilPrependToResponseBody("Injected Content!");
}
![Page 42: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/42.jpg)
![Page 43: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/43.jpg)
![Page 44: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/44.jpg)
![Page 45: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/45.jpg)
![Page 46: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/46.jpg)
Timeline view of Buffering Mode
Timeline view of Streaming Mode
![Page 47: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/47.jpg)
![Page 48: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/48.jpg)
![Page 49: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/49.jpg)
oCDS.dwData = 61180; // Magic CookieoCDS.cbData = strlen(sData);oCDS.lpData = sData;
SendMessage( FindWindow(NULL, "Fiddler - HTTP Debugging Proxy"),WM_COPYDATA,NULL,(LPARAM) &oCDS);
![Page 50: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/50.jpg)
>>FUTURE
Fiddler 2
Fiddler ScriptEngineFiddler ScriptEngine
Inspector2Inspector2
Inspector2Inspector2
IFiddlerExtension
IFiddlerExtension
IFiddlerExtension
IFiddlerExtension
FiddlerCoreFiddlerCore
YourApp.exeYourApp.exe
FiddlerCoreFiddlerCore
Fiddler application with extensions
Your application hosting FiddlerCore
Your FiddlerScript
Your FiddlerScript
Xceed*.dll
Xceed*.dll
Makecert.exe
Makecert.exe Makecert.ex
eMakecert.ex
e
![Page 51: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/51.jpg)
// Call Startup to tell FiddlerCore to begin // listening on the specified port, register as // the system proxy and decrypt HTTPS traffic.Fiddler.FiddlerApplication.Startup(8877, true, true);
Fiddler.FiddlerApplication.BeforeResponse += delegate(Fiddler.Session oS) { Console.WriteLine("{0}:HTTP {1} for {2}", oS.id, oS.responseCode, oS.fullUrl); }; // Call Shutdown to tell FiddlerCore to stop// listening and unregister as the system proxyFiddler.FiddlerApplication.Shutdown();
![Page 52: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/52.jpg)
>>FUTURE
![Page 53: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/53.jpg)
![Page 54: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/54.jpg)
Built by Developers for Developers….
![Page 55: Become a Web Debugging Virtuoso with Fiddler](https://reader033.vdocuments.us/reader033/viewer/2022061603/56814598550346895db289e9/html5/thumbnails/55.jpg)
© 2009 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.