Hoppa till huvudinnehållet
Till KTH:s startsida Till KTH:s startsida

Source Code

SenSys Source Code

The current stable release of SenSys is written in Java and can run in any system that supports Java version up to 1.5.1. Below is a .jar package containing all the source files of SenSys code None.

You can also download the latest SenSys API documentation None where all integrated/linked components, methods and structures are described in detail.

SenSys Libraries

SenSys' successfull operation requires a number of libraries None that must be imported in your work space folder. They integrate GUI and Visualization themes, DERBY database (for offline analysis), and Sensor communication interfaces.

All the included .jar libraries must be imported correctly in your system Java classpath. Below is a short overview of SenSys libraries and usage::

Library Description
substance.jar, colt.jar, jung.rar, char.ext.jar, gui.Table.jar, gui.Tabs.jar Table and tab themes used by the SenSys Network Visualization component. There are, also, included suitable interfaces for visualizing the overheard neighborhood topology.
derby.jar DERBY database core plug-in.
common-collections.jar, MozillaInterfaces.jar Codec plug-in providing implementation of common encoders and decoders such as Hex, URLs.
tinyos.jar Package containing all neccessary java class files for supporting communication between a sensor mote and the attached host (namely the computer running the SenSys tool).
openmap.jar Java Beans toolkit used for visualizing the attacker's overheard neighborhood.

Installation Notes

What you'll need to get SenSys up and running...

  • Any Windows based operating system along with a suitable installed cygwin and TinyOS 1.x environment for firing up SenSys tool. In the case of a Unix based operating system the only prerequisite is a TinyOS 1.x environment.
  • Installed Java version up to 1.5.1.
  • A sensor mote for serving as the attached radio transceiver; used for capturing/forwarding all overheard communications to the attached host and sending any neccessary specially crafted messages during the attacks. The node must be loaded with the common TOSBase None apllication that can be found in any TinyOS release None. It bridges packets between a serial channel and the attached radio.
    The current stable release of SenSys supports Tmote Sky sensor platforms.

Getting SenSys Project Folder

The SenSys work project is developped using the NetBeans toolkit. It is structured in such a way for handling the underlying database and concurrent communication between the host and the attached sensor platform. The link contains the entire SenSys folder None along with the corresponding package that holds all neccessary class files. Also, it is enhanced with built-in codlets containing commands for performing Code Injection attacks (code for the Self-Propagating Worm).

Boot up Procedure

After having successfully downloaded the SenSys project, first you have to correctly import the complementary libraries. This can be done in two ways::

  • Include the paths of these libraries into your system's Java classpath variable.
  • Import them, separately, only to your SenSys working project folder.

Once this is done, you are ready to fire up the SenSys tool. Go to the directory where the SensorAttackTool.jar file resides and type in a TinyOS 1.x command line terminal:

Command Possible response(s)
java -cp SensorAttackTool.jar sensorattacktool.Main "Sensor.port=COM$NUM$:$sensor_platform$" BOOT UP successfully OR FATAL EXCEPTION + (kind of exception)

The “Sensor.port” configuration property identifies the port where the attached sensor hardware, of type sensor_platform, is connected. It is important to set this property correctly, otherwise the SenSys tool will fail to boot up.
For example, in the case of a Tmote Sky sensor node connected to port COM14, the correct boot up command would be::

java -cp SensorAttackTool.jar sensorattacktool.Main "Sensor.port=COM14:tmote"