About the Author 5
Introduction 7
Practice Exercises 17
Exercise E0: Download, set up, and verify your WinDbg or Debugging Tools for Windows installation or Docker Debugging Tools for Windows image 21
Exercise ES1: Explore Patterns WinDbg Extension 35
Exercise ES2: Explore MEX WinDbg Extension 41
Exercise ES3: Explore DbgKit WinDbg Extension 63
Exercise ES4: Explore win32kext WinDbg Extension 105
Exercise ES5: Explore SwishDbgExt WinDbg Extension 112
Exercise ES6: Explore 0cchext WinDbg Extension 132
Exercise ES7: Explore pykd WinDbg Extension 144
Exercise ES8: Explore snapshot WinDbg Extension 175
Exercise ES9: Explore WinDbg Copilot 189
Exercise ES10: Explore ChatDBG WinDbg Extension 206
Exercise EW1: Writing WinDbg Extension (WdbgExts C API) 222
Exercise EW2: Writing WinDbg Extension (DbgEng COM API) 237
Exercise EW3: Writing WinDbg Extension (ExtExtension C++ API) 251
Exercise EW4: Writing WinDbg Extension (Rust) 264
Exercise EP1: Install Kafka Environment 274
Exercise EP2: Connect WinDbg to Kafka 277
Exercise EP3: Configure Kafka Connect to Send WinDbg Output 281
Exercise ED1: Install MongoDB Environment 290
Exercise ED2: Connect WinDbg to MongoDB 297
Exercise EV1: Install Jupyter Notebook Environment 307
Exercise EV2: Execution Residue Visualization 316
Exercise EV3: Find Anomalies in Stack Traces 332
Exercise ML1: Compute Similarity of Stack Traces 340
Exercise ML2: Group Stack Traces into Clusters 344
Exercise ML3: Identify Anomalous Stack Traces 347
Conclusion 355
