Hands-on DNP3 protocol analysis in Python: state machines, transport reassembly anomalies, administrative functions, and Secure Authentication (SA v5).