In-App Scripting

With in-app scripting you can conveniently write your scripts right inside IO Ninja. While the in-app scripts are more limited than IO Ninja plugins, often times it’s much faster to punch in a simple script right inside the IO Ninja application – rather than to create a dedicated plugin to carry out the similar actions.

Packet Templates

Packet Templates in IO Ninja allow you to create definitions for the structures of packets using in a certain protocol, and then conveniently fill the fields of those packet using the property grid.

_images/packet-template-transmit-page.png

To define packet structures, you describe them using C-language-like struct-s. Jancy has a high level of compatibility with C, so often times you can simply copy-paste protocol structures from open-source C projects.

_images/packet-template-editor-dlg.png

It’s also possible to define actions to programmatically calculate certain portions of the packet. A good example for the proper use of this feature would be filling in the checksum field:

[ packetTemplateAction ]
void calcChecksum() {
    m_checksum = 0; // nullify before calcluations
    m_checksum = crc16_ansi(this, dynamic sizeof(this));
}

Script Pane

Inside the Script pane you can define the logic for programmatically preparing packets (or packet sequences) and transmitting them over the currently opened session. It’s also possible to listen for events generated by the session and react appropriately (for example, send a reply packet when a command is detected inside the RX data stream).

_images/script-pane.png