Skip to content
Simple modbus-based PLC simulation + exploit.
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Type Name Latest commit message Commit time
Failed to load latest commit information.
modbuster Updated modbuster to handle multiple registers within expected range May 4, 2016


modbussim is a simple modbus-based PLC simulation. It was developed to explore the basics of exploiting the modbus protocol for purposes of data gathering and/or modifying the behavior of industrial systems.

This project was developed for educational purposes: CS544 Cybersecurity, University of New Mexico, Spring 2016.

Authors: Whit Schonbein (schonbein [at] and Evan Dye (etdye [at] A writeup of the attacks we explored using modbussim can be found here.


modbussim: the simulation. compliation requires the libmodbus library at Compilation with the optional annoying-sine-wave-indicating-imminent-explosion thread requires the alsa sound libraries. The modbussim directory also contains some tools for writing to and reading from the simulation, as well as determining how many registers an instance of the simulation provides.

modbuster: tool for exploiting the simulaton for purposes of wreaking havoc. modbuster determines the relevant port and register for causing the simulation to go into an 'explode' state, and then puts it there.

scripts: scripts (bro, python) we used to process and plot captured modbus over tcp packets.

You can’t perform that action at this time.