DNP3 Home

DNP3 Home

DNP3 Packet Generator

A Tool to Generate a DNP3 Control Relay Output Block Packet With Fine-Grained Control

Download Now

Packet Generation Module:

The Packet Generation Thread interprets the user provided forms to derive the necessary control packet parameters. This thread uses the Scapy Python library and a custom DNP3 packet library to generate the encoded packet and sent it through the network interface specified by the user.

Sniffing Module:

The Sniffing Thread attempts to guide the user in appropriate packet parameters by sniffing traffic at a specified interface, dissecting the sniffed packets, and filling the GUI with the observed packet parameters. This would give a user an idea of the control devices present in a network, as well as the control parameters commonly sent to those devices. Both packet sniffing and dissection were performed using the Pcapy Python library.

GUI Module:

The Serving/Form Parsing Thread provides an HTML/Javascript GUI to a user, which allows them to specify values for every parameter in every network layer for the generated control packet. This thread uses the Flask Python library to handle HTML templating, serving, and form parsing, and passes the user provided forms to the Packet Generation Thread.