Introduction

Boiboite Opener Framework / Ouvre-Boiboite Framework contains a set of features to write scripts using industrial network protocols for test and attack purposes.

The following submodules are available:

base:Basic helpers for correct module usage (error handling, logging, some parsing features.
network:Global network classes, used by protocol implementations in submodules. The content of this class should not be used directly, unless writing a new protocol submodule.
packet:Base class for specialized BOF packets in layers. Such classes link BOF content and usage to protocol implementations in Scapy. In other words, they interface BOF’s syntax used by the end user with Scapy Packet and Field objects used for the packet itself. The base class BOFPacket is not supposed to be instantiated directly, but whatever.
device:Global object for representing industrial devices. All objects in layers built using data extracted from responses to protocol-specific discovery requests shall inherit BOFDevice.
layers:Protocol implementations to be imported in BOF. Importing layers gives access to BOF protocol implementations inheriting from BOFPacket (interface between BOF and Scapy worlds). The directory layers/raw_scapy may contain protocol implementations in Scapy which are not integrated to Scapy’s repository (for instance, if you wrote your own but did not contribute (yet)).
modules:Higher level functions gathered around a specific usage that may rely on several protocols (layers).