Sneak Peek at Table of Contents for the Upcoming Fiddler Book


Table of Contents

Acknowledgements………………………………………………………………………………………………………………………………………… iii

Table of Contents……………………………………………………………………………………………………………………………………………. iv

Origins……………………………………………………………………………………………………………………………………………………………… 1

About this book…………………………………………………………………………………………………………………………………………… 3

A Quick Primer………………………………………………………………………………………………………………………………………………… 5

Basic Concepts…………………………………………………………………………………………………………………………………………….. 5

Fiddler Scenarios………………………………………………………………………………………………………………………………………… 6

Getting Started with Fiddler…………………………………………………………………………………………………………………………….. 8

System Requirements…………………………………………………………………………………………………………………………………. 8

Installing Fiddler………………………………………………………………………………………………………………………………………….. 8

Updating Fiddler………………………………………………………………………………………………………………………………………….. 9

The Fiddler User-Interface…………………………………………………………………………………………………………………………….. 10

The Web Sessions List……………………………………………………………………………………………………………………………….. 10

Web Sessions Context Menu…………………………………………………………………………………………………………………….. 13

Fiddler’s Main Menu……………………………………………………………………………………………………………………………………… 17

Fiddler’s About Box…………………………………………………………………………………………………………………………………… 22

Fiddler’s Toolbar……………………………………………………………………………………………………………………………………………. 24

Fiddler’s Status Bar……………………………………………………………………………………………………………………………………. 25

Application Hotkeys………………………………………………………………………………………………………………………………………. 26

QuickExec……………………………………………………………………………………………………………………………………………………… 27

The Fiddler User-Interface…………………………………………………………………………………………………………………………….. 32

Comparing Sessions……………………………………………………………………………………………………………………………………….. 33

Debugging with Breakpoints………………………………………………………………………………………………………………………….. 35

Statistics Tab………………………………………………………………………………………………………………………………………………….. 38

The Filters tab………………………………………………………………………………………………………………………………………………… 40

Request Headers………………………………………………………………………………………………………………………………………. 41

The Timeline tab……………………………………………………………………………………………………………………………………………. 45

Mode: Timeline…………………………………………………………………………………………………………………………………………. 45

Mode: Client Pipe Map……………………………………………………………………………………………………………………………… 47

Mode: Server Pipe Map……………………………………………………………………………………………………………………………. 47

The AutoResponder tab………………………………………………………………………………………………………………………………… 48

Specifying the Match Condition………………………………………………………………………………………………………………… 49

Specifying the Action Text………………………………………………………………………………………………………………………… 50

Using RegEx Replacements in Action Text…………………………………………………………………………………………………. 51

Drag-and-Drop support…………………………………………………………………………………………………………………………….. 52

FARX Files………………………………………………………………………………………………………………………………………………….. 53

Encoding and Decoding Text with the TextWizard………………………………………………………………………………………… 54

A Few Words on Character Encodings………………………………………………………………………………………………………. 55

The Composer tab…………………………………………………………………………………………………………………………………………. 56

The Log tab……………………………………………………………………………………………………………………………………………………. 60

The Find Sessions Dialog………………………………………………………………………………………………………………………………… 61

The HOSTS Dialog…………………………………………………………………………………………………………………………………………… 63

Retargeting Traffic with Fiddler……………………………………………………………………………………………………………………… 64

Features to Retarget Requests………………………………………………………………………………………………………………….. 66

Sending Traffic to Fiddler………………………………………………………………………………………………………………………………. 67

Capturing Traffic from Browsers……………………………………………………………………………………………………………….. 67

Capturing Traffic from Other Applications………………………………………………………………………………………………… 69

Capturing Traffic from Services…………………………………………………………………………………………………………………. 70

Capturing Traffic to Loopback…………………………………………………………………………………………………………………… 70

Running Fiddler on Mac OSX…………………………………………………………………………………………………………………….. 73

Capturing Traffic from Other Computers………………………………………………………………………………………………….. 74

Capturing Traffic from Devices………………………………………………………………………………………………………………….. 75

Using Fiddler as a Reverse Proxy………………………………………………………………………………………………………………. 76

Chaining to Upstream Proxy Servers…………………………………………………………………………………………………………. 77

Chaining to SOCKS / TOR…………………………………………………………………………………………………………………………… 77

VPNs, Modems, and Tethering………………………………………………………………………………………………………………….. 78

DirectAccess……………………………………………………………………………………………………………………………………………… 78

Buffering vs. Streaming Traffic………………………………………………………………………………………………………………………. 79

Request Buffering……………………………………………………………………………………………………………………………………… 79

Response Buffering…………………………………………………………………………………………………………………………………… 79

COMET………………………………………………………………………………………………………………………………………………………. 79

HTML5 WebSockets………………………………………………………………………………………………………………………………………. 81

Fiddler and HTTPS………………………………………………………………………………………………………………………………………….. 82

Configuring Clients for HTTPS Decryption……………………………………………………………………………………………………… 85

Certificate Validation……………………………………………………………………………………………………………………………………… 86

Apple iOS and Android………………………………………………………………………………………………………………………………….. 87

Client Certificates………………………………………………………………………………………………………………………………………….. 88

Client Certificates………………………………………………………………………………………………………………………………………….. 89

Fiddler and FTP……………………………………………………………………………………………………………………………………………… 90

Memory Use and Fiddler’s Bitness………………………………………………………………………………………………………………… 91

Fiddler and Web Authentication…………………………………………………………………………………………………………………… 93

HTTP Authentication…………………………………………………………………………………………………………………………………. 93

Automatic Authentication in Fiddler…………………………………………………………………………………………………………. 94

Authentication Issues………………………………………………………………………………………………………………………………… 95

HTTPS Client Certificates…………………………………………………………………………………………………………………………… 96

Inspectors……………………………………………………………………………………………………………………………………………………… 98

Auth (Request / Response)………………………………………………………………………………………………………………………….. 100

Caching (Response; ReadOnly)……………………………………………………………………………………………………………………. 102

Cookies (Request / Response; ReadOnly)……………………………………………………………………………………………………. 103

Headers (Request/Response; Read/Write)…………………………………………………………………………………………………. 104

Context Menu…………………………………………………………………………………………………………………………………………. 105

Keyboard Shortcuts………………………………………………………………………………………………………………………………… 105

Editing……………………………………………………………………………………………………………………………………………………… 105

HexView (Request / Response; Read/Write)………………………………………………………………………………………………. 107

ImageView (Response; ReadOnly)……………………………………………………………………………………………………………….. 109

JSON (Request / Response; ReadOnly)………………………………………………………………………………………………………… 110

Raw (Request / Response; Read/Write)………………………………………………………………………………………………………. 111

SyntaxView (Request / Response; Read/Write)…………………………………………………………………………………………… 112

TextView (Request / Response; Read/Write)………………………………………………………………………………………………. 114

Transformer (Response; Read/Write)…………………………………………………………………………………………………………. 115

WebForms (Request; Read/Write)……………………………………………………………………………………………………………… 117

WebView (Response; ReadOnly)…………………………………………………………………………………………………………………. 118

XML (Request / Response; ReadOnly)…………………………………………………………………………………………………………. 119

Fiddler Options……………………………………………………………………………………………………………………………………………. 120

General Options……………………………………………………………………………………………………………………………………… 120

HTTPS Options…………………………………………………………………………………………………………………………………………. 121

Extensions Options………………………………………………………………………………………………………………………………….. 122

Connections Options………………………………………………………………………………………………………………………………. 123

Appearance Options……………………………………………………………………………………………………………………………….. 124

Preferences………………………………………………………………………………………………………………………………………………… 125

Understanding Text Encodings…………………………………………………………………………………………………………………….. 126

Fiddler Extensions……………………………………………………………………………………………………………………………………….. 127

Gallery…………………………………………………………………………………………………………………………………………………………. 128

Full-Screen View……………………………………………………………………………………………………………………………………… 128

Content Blocker…………………………………………………………………………………………………………………………………………… 130

FiddlerScript Editors……………………………………………………………………………………………………………………………………. 132

FiddlerScript Tab…………………………………………………………………………………………………………………………………….. 132

ClassView Sidebar……………………………………………………………………………………………………………………………………. 133

Fiddler2 ScriptEditor……………………………………………………………………………………………………………………………….. 133

SAZ Clipboard………………………………………………………………………………………………………………………………………………. 135

Traffic Differ………………………………………………………………………………………………………………………………………………… 136

AnyWHERE…………………………………………………………………………………………………………………………………………………… 137

JavaScript Formatter……………………………………………………………………………………………………………………………………. 138

Session Archive Zip (SAZ) Files…………………………………………………………………………………………………………………….. 139

Protecting SAZ Files………………………………………………………………………………………………………………………………… 139

Importing and Exporting Sessions………………………………………………………………………………………………………………… 141

Import Formats……………………………………………………………………………………………………………………………………….. 141

Export Formats………………………………………………………………………………………………………………………………………… 141

Fiddler’s Viewer Mode………………………………………………………………………………………………………………………………… 146

FiddlerCap…………………………………………………………………………………………………………………………………………………… 147

Capture Box…………………………………………………………………………………………………………………………………………….. 147

Capture Options Box……………………………………………………………………………………………………………………………….. 148

Tools Box…………………………………………………………………………………………………………………………………………………. 149

Using Fiddler for Performance Debugging………………………………………………………………………………………………….. 152

Using Fiddler for Content Collection……………………………………………………………………………………………………………. 153

Using Fiddler for Security Analysis………………………………………………………………………………………………………………. 154

Configuration for IT Administrators……………………………………………………………………………………………………………… 155

Using Fiddler for Compatibility Diagnosis…………………………………………………………………………………………………….. 156

Extending Fiddler with FiddlerScript……………………………………………………………………………………………………………. 158

About FiddlerScript…………………………………………………………………………………………………………………………………. 158

Editing FiddlerScript………………………………………………………………………………………………………………………………… 159

FiddlerScript Functions……………………………………………………………………………………………………………………………….. 161

Session Handling Functions…………………………………………………………………………………………………………………….. 161

General Functions…………………………………………………………………………………………………………………………………… 162

Automating Fiddler……………………………………………………………………………………………………………………………………… 164

Extending Fiddler’s UI – Menus……………………………………………………………………………………………………………………. 167

Extending the Tools Menu………………………………………………………………………………………………………………………. 167

Extending the Web Sessions Context Menu……………………………………………………………………………………………. 168

Extending the Rules Menu………………………………………………………………………………………………………………………. 168

Creating New Top-Level Menus………………………………………………………………………………………………………………. 171

Extending Fiddler’s UI – Adding Columns to the Web Sessions List……………………………………………………………… 173

Binding Columns using Attributes……………………………………………………………………………………………………………. 173

Binding Columns using AddBoundColumn………………………………………………………………………………………………. 175

FiddlerObject Functions………………………………………………………………………………………………………………………………. 177

Referencing Assemblies………………………………………………………………………………………………………………………………. 180

Interacting with Fiddler……………………………………………………………………………………………………………………………….. 181

Sample Scripts……………………………………………………………………………………………………………………………………………… 182

Extending Fiddler with .NET…………………………………………………………………………………………………………………………. 186

Project Requirements and Settings…………………………………………………………………………………………………………. 187

Debugging Extensions……………………………………………………………………………………………………………………………… 187

Best Practices for Extensions………………………………………………………………………………………………………………….. 187

Interacting with Fiddler……………………………………………………………………………………………………………………………….. 192

Understanding SessionStates………………………………………………………………………………………………………………….. 192

SessionFlags…………………………………………………………………………………………………………………………………………….. 192

Sending Strings to the TextWizard………………………………………………………………………………………………………….. 193

Logging Events………………………………………………………………………………………………………………………………………… 194

Interacting with the FiddlerScript Engine………………………………………………………………………………………………… 194

Programming with Preferences…………………………………………………………………………………………………………………… 196

Preference Naming…………………………………………………………………………………………………………………………………. 196

The IFiddlerPreferences Interface………………………………………………………………………………………………………….. 196

Storing and Removing Preferences………………………………………………………………………………………………………… 197

Retrieving Preferences…………………………………………………………………………………………………………………………… 197

Watching for Preference Changes………………………………………………………………………………………………………….. 197

Notifications in Extensions………………………………………………………………………………………………………………………. 197

Notifications in FiddlerScript…………………………………………………………………………………………………………………… 198

Building Extension Installers………………………………………………………………………………………………………………………… 199

Building Inspectors………………………………………………………………………………………………………………………………………. 202

Inspecting the Session Object…………………………………………………………………………………………………………………. 205

Dealing with HTTP Compression and Chunking……………………………………………………………………………………………. 208

Decoding a Copy of the Body………………………………………………………………………………………………………………….. 208

Using the GetRe*BodyAsString Methods………………………………………………………………………………………………… 209

Using the utilDecode* Methods……………………………………………………………………………………………………………… 209

Inspector Assemblies………………………………………………………………………………………………………………………………. 210

Fiddler Extensions……………………………………………………………………………………………………………………………………….. 211

Integrating with QuickExec……………………………………………………………………………………………………………………… 212

Extension Assemblies……………………………………………………………………………………………………………………………… 213

Import and Export Transcoders…………………………………………………………………………………………………………………… 214

Handling Options…………………………………………………………………………………………………………………………………….. 216

Going Beyond Files………………………………………………………………………………………………………………………………….. 218

FiddlerCore…………………………………………………………………………………………………………………………………………………. 224

Legalities…………………………………………………………………………………………………………………………………………………. 225

Getting Started with FiddlerCore…………………………………………………………………………………………………………….. 225

Compiling the Sample Application…………………………………………………………………………………………………………… 225

The FiddlerCoreStartupFlags…………………………………………………………………………………………………………………… 227

The FiddlerApplication Class……………………………………………………………………………………………………………………….. 229

FiddlerApplication Events……………………………………………………………………………………………………………………….. 229

FiddlerApplication Methods……………………………………………………………………………………………………………………. 230

FiddlerApplication Properties and Fields………………………………………………………………………………………………… 231

Fiddler API………………………………………………………………………………………………………………………………………………. 231

Common Tasks with FiddlerCore…………………………………………………………………………………………………………………. 233

Other resources……………………………………………………………………………………………………………………………………… 234

Appendix A: Troubleshooting……………………………………………………………………………………………………………………… 236

Missing Traffic…………………………………………………………………………………………………………………………………………. 236

Interference from Security Software……………………………………………………………………………………………………… 237

Corrupted Proxy Settings………………………………………………………………………………………………………………………… 238

Resetting Fiddler…………………………………………………………………………………………………………………………………….. 238

Troubleshooting Certificate Problems…………………………………………………………………………………………………….. 239

Wiping all traces of Fiddler……………………………………………………………………………………………………………………… 240

Fiddler crashes complaining about the “Configuration System”……………………………………………………………… 240

Fiddler randomly stops capturing traffic…………………………………………………………………………………………………. 240

Fiddler stalls streaming RPC-over-HTTPS traffic………………………………………………………………………………………. 241

Appendix B: Command Line Syntax…………………………………………………………………………………………………………….. 242

Option Flags…………………………………………………………………………………………………………………………………………….. 242

Appendix C: Session Flags……………………………………………………………………………………………………………………………. 243

Session Display Flags……………………………………………………………………………………………………………………………….. 243

Breakpoint and Editing Flags……………………………………………………………………………………………………………………. 244

Network Routing Flags…………………………………………………………………………………………………………………………….. 245

Performance Simulation Flags…………………………………………………………………………………………………………………. 247

Client Information Flags…………………………………………………………………………………………………………………………… 247

HTTPS Flags……………………………………………………………………………………………………………………………………………… 248

Appendix D: Preferences……………………………………………………………………………………………………………………………. 254

Network Preferences……………………………………………………………………………………………………………………………… 254

HTTPS Preferences…………………………………………………………………………………………………………………………………. 257

Fiddler UI Preferences……………………………………………………………………………………………………………………………. 259

Path Configuration………………………………………………………………………………………………………………………………….. 265

Miscellaneous…………………………………………………………………………………………………………………………………………. 266

Extension Preferences……………………………………………………………………………………………………………………………. 266

Index……………………………………………………………………………………………………………………………………………………………. 270

 

 

 

Comments (4)

  1. Oh, goody! I love a book about Fiddler! I love spending money on such books. (Of course, no comment on the practicality of doing so at any given point in time. I just love.) I shall enjoy it.

    I hope you are not thinking about writing a novel. 😉

  2. Eyal Post says:

    If you need someone to review, I would love to help! 🙂

  3. Vinicius Canto Xavier says:

    Definitely a book I'll read from start to finish.