Online Training: Writing Bad Code (Part 1)

Software Diagnostics Services organizes this online training course.

March 3, 10, 17, 24, 31 2025, 12:30 pm - 1:30 pm (GMT, March 31 GMT+1) Price 99 USD Registration

Why would you need to learn how to write bad code? Of course, not to write malicious code backdoors but to understand software internals and diagnostics better. Writing “good” bad code is not easy, especially if you put specific requirements to it and are not satisfied with the accidental effects of bad bad code.

Topics include:

  • Modeling abnormal software behavior
  • Modeling memory analysis patterns
  • Modeling trace and log analysis patterns
  • Modeling defect mechanism patterns
  • Simulation of complex software problems
  • Software problem design patterns
  • Fault injection
  • Excellent bad code
  • Portable bad code
  • User and kernel code
  • Avoiding compiler undefined behavior
  • Debugging bad code to make it work as intended

The training also includes numerous hands-on coding projects using Visual C & C++ and GNU C & C++ compilers, x64 Windows and x64 and ARM64 Linux platforms. Some parts will also use Python, C#, Rust, and Scala for modeling examples.

Before the training, you get:

  • Practical Foundations of Windows Debugging, Disassembling, Reversing, Second Edition PDF book (+300 pages)
  • Encyclopedia of Crash Dump Analysis Patterns, Third Edition (1,300 pages)
  • Trace, Log, Text, Narrative, Data: An Analysis Pattern Reference for Information Mining, Diagnostics, Anomaly Detection, Fifth Edition (400 pages)
  • Access to Software Diagnostics Library with more than 440 cross-referenced patterns of memory dump analysis, their classification, more than 70 case studies, and more than 240 general trace and log analysis patterns

After the training, you also get:

  • The PDF book version of the training
  • Personalized Certificate of Attendance with unique CID
  • Recording

Audience:

C and C++ developers, Windows and Linux system programmers, software technical support and escalation engineers, system administrators, security and vulnerability researchers, reverse engineers, malware and memory forensics analysts, software developers, and quality assurance engineers.