Introducing IO Ninja

IO Ninja is a professional, scriptable, multi-purpose terminal emulator, network sniffer and IO monitor. It's aimed at network security experts, system administrators, and all kinds of software/hardware/embedded developers.


IO Ninja 3.10.1 is out!

Service Release

Notable updates in v3.10.1 and v3.10.0:

  • Fixes for plugins broken in v3.10.0

    Along with many updates, v3.10.0 introduced a few regressions affecting the following plugins: TCP Flow Monitor, Named Pipe Monitor, Mailslot Monitor, Regex Colorizer. These regressions are fixed in v3.10.1 and all plugins are functional again.

  • Raspberry Pi support

    Many users contacted us asking for a Raspberry Pi build of IO Ninja. Your wish is our command — now you can run both IO Ninja and the Device Monitor service on your Raspberry Pi!

  • New plugin: Serial Monitor over SSH

    With this plugin, it's possible to monitor serial ports on remote machines. For example, run IO Ninja on your MacBook Pro and see what a script on your Raspberry Pi is sending over /dev/ttyS0 — in real time!

  • The half-duplex mode in Modbus Analyzer

    Often Modbus over RS-422 or RS-485 operates in half-duplex mode — both parties transmit data over the same pair of lines. This effectively makes data bytes of requests and replies indistinguishable from one another. However, it's not a problem anymore — the Modbus Analyzer plugin now has a special decoding mode to combat this.

  • New 64-bit log record code architecture and log representer plugins

    Log record codes in IO Ninja v3.10.0 and above are globally-unique 64-bit numbers (previously, log record codes were 32-bit and unique only within a specific plugin). This change has many long-run consequences such as eliminating log record code collisions once and for all, ability to easily and safely share log representers between plugins, dramatically decreased compilation time when opening logs (only a representer has to be compiled, not the whole plugin), etc.

  • New implementation of Jancy reactors

    Reactors in the Jancy language are workhorses of spreadsheet-like reactive programming. You write a block of expressions (or formulas), and the runtime automatically re-runs those formulas whenever any referenced value changes — just like in Excel, only it's your program! The new design alleviates most of the previous limitations, and now you can write practically any formulas — intuitively and without any performance penalty. This is perfect for UI programming!

  • Crash reports on Linux and Mac OS X

    Now it's easy for you to help us find and fix problems — but only if you choose to, of course! IO Ninja uses libunwind to collect stack backtraces on application crashes; these backtraces together with some basic system information can be automatically submitted to our web server over an encrypted channel. You can skip sending, inspect and delete crash manifests, or completely disable crash report submission.

  • Lots of BUGFIXes and other improvements — as usual!

    For a full list of changes see changelog.txt (also included in all installation packages).

Previous release announcements

Serial Tap for IO Ninja

We are proud to introduce the new hardware Serial Tap for IO Ninja. This is a simple yet functional and convenient sniffer for asynchronous serial links (RS-232, RS-422, RS-485, TTL-level UART).

A native support for this sniffer device is provided via the Serial Tap plugin.

Serial Communications

Performs serial communication using one of the installed COM/VCOM/CDC devices on your machine.

Monitors data transmitted over any of the installed COM/VCOM/CDC device on your machine.

Monitors data transmitted over any of the installed COM/VCOM/CDC device on a remote machine — using an SSH connection to this remote machine.

Monitors data flowing through a RS-232/RS-422/RS-485/TTL serial link using our new hardware snifferSerial Tap.

Monitors data flowing through popular tap-cables EZ-Tap Pro and Versa-Tap from Stratus Engineering Inc.

Monitors data flowing through a generic dual COM tap-cable — such as EZ-Tap RS-232.

Analyzes a serial communication log and and annotates the raw data flow with decoded Modbus RTU or Modbus ASCII messages.

Network Communications

Establishes outbound connection over a TCP client-side socket.

Listens for and accepts inbound connection to a TCP server-side socket.

A man-in-the-middle for a TCP connection. Passes-through data between a TCP client and a TCP server while writing everything to the log.

Reconstructs TCP communications from packets captured via Pcap and produced a clean data flow view.

Performs one-to-one or one-to-many UDP communication over a UDP socket without the connection notation.

Reconstructs UDP communications from packets captured via Pcap and produced a clean data flow view.

Establishes outbound SSH channel over a TCP client-side socket.

A data-centric front-end for Pcappayloads visible instantly in the main log!

Analyzes a TCP connection log and annotates the raw data flow with decoded Modbus TCP messages.

File Systems

Performs reads and/or writes to a generic file stream — on-disk file, named pipe, non-standard device, etc.

Listens for and accepts inbound connection to a server-side Windows named pipe.

Monitors data transmitted over named pipes on your Windows machine — both local and remote (UNC).

Receives inbound messages to a server-side Windows mailslot.

Monitors data transmitted over mailslots on your Windows machine — both local and remote (UNC).

USB Communications

Performs low-level direct USB control transfer over the USB endpoint #0 on a device.

Performs low-level direct USB data transfers over bulk, interrupt, or isochronous endpoints on a device.

Generic Layers

Implements XModem protocol for file transmit/receive over ANY transportserial, TCP, UDP, named pipe, etc.

Efficiently colorizes RX/TX data according to the preset regular expression patterns.

Adjusts outbound packets — appends prefix and/or suffix, re-transmits with the specified interval, inserts inter-character delays.

Allows to filter out (exclude) TX or RX streams out of the log — extremely helpful when local echo clutters the view!

Immediately transmits any inbound packet back — a simple, yet effective testing tool. Needless to say, it works with ANY transport!

Platform Features

IO Ninja is powered by our innovative programming language Jancy tailor-made for IO and UI programming.

Need a non-standard network protocol analyzer, a device emulator or an IO testing utility? IO Ninja can be programmed to do the job.

IO Ninja comes with a convenient IDE and that means it's not only possible to customize it — it's fun (if you're a nerd, that is).

IO Ninja's advanced logging engine shows massive logs in a clean, easy-to-read way. It'll gracefully display informational text messages side-by-side with binary data blocks in either hex view or plain text representations.

IO Ninja has excellent support for binary data transmission.

Need a low-level IO terminal tool to send binary data over TCP? Or send hex to serial port? Ninja would be the best tool for binary packets transmission.

IO Ninja supports ANSI & X-Term terminal emulation; switch between log view and terminal console any time you want.

IO Ninja provides a powerful and elegant way of redirecting data from any transport to any other transport with Session Linking. Think Unix pipes, but better.

Write protocol analyzers or emulators, testing applications, and other utilities to extend existing sessions.

IPv6 is slowly but steadily taking over the Internet. IO Ninja is here to help testing IPv6-connectivity of your products.

No more question marks! IO Ninja can show and send characters in any Unicode encoding.

GitHub Resources

Feel free to inspect, fix and update the official IO Ninja plugins.

Use this public issue tracker to report bugs, suggest new features and discuss the further development of IO Ninja.


More screenshots...