Introducing IO Ninja

IO Ninja is a professional all-in-one terminal emulator, sniffer, and protocol analyzer. IO Ninja is highly modular and has plugins for most transports and protocols you might сome across — network (TCP, UDP, SSL, SSH, WebSockets, etc.), serial (UART, I2C, SPI, Modbus, etc.), and others (USB, Pipes, J-Link RTT, etc.). IO Ninja is scriptable and allows you to generate packets programmatically, react to incoming packets and other IO events, and create non-standard protocol analyzers.

IO Ninja is your debugger for any IO-related task and a must-have tool for network security experts, system administrators, and all developers who deal with network programming in their line of work.

2021-09-29

IO Ninja 5.0.4 is out!

Service Release


  • Critical fix: rare deadlock in inter-process read-write locks on heavy load
  • Fix: add missing file io_websocket.jncx to the MSI package for Windows
  • Fix: incorrect reconnect logic (stopped after the first failed reconnect attempt) in TCP Connection, SSL Connection, WebSocket Client
  • New command line option -c (--connect) to connect a session immediately after startup
  • New command line option -s (--script <filename>) to load and run a script file immediately after startup
  • New checksum calculator for XOR-8

IO Ninja 5 Highlights

  • New IO Ninja accounts, capabilities, and subscriptions ecosystem
  • New WebSocket client and server plugins
  • Device Monitor updates for recent builds of the Linux kernel
  • Support for custom baud rates in the Serial plugin on Linux and macOS
  • Detection of serial status line changes on Linux and macOS
  • Find-Next (F3) and Find-Prev (Shift+F3) in the log
  • Significant improvements in the UI look-and-feel on macOS
  • Reliable TX/RX stats in the presence of log converters or filters
  • Lots of other bug fixes, optimizations, and improvements!
IO Ninja Accounts, Capabilities, And Subscriptions

IO Ninja Accounts, Capabilities, And Subscriptions

The new account-based ecosystem is here to replace the old licensing model. Now you can cherry-pick only those IO Ninja capabilities that are important to you and your line of work — instead of having to purchase an all-in-one license and thus essentially pay for something you might never use. For those of you who don't want to choose capabilities one-by-one and would prefer a more straightforward approach instead, we provide subscriptions that enable everything at once. For companies, we have workgroup accounts that allow for convenient sharing of capabilities and subscriptions among workgroup members. Read more about the new account, capabilities, and subscription ecosystem on the introduction page.

WebSocket Plugins

WebSocket Plugins

Modern Web programming often employs WebSockets technology. With it, you enjoy the two-way communication between a browser and a server instead of the traditional HTTP request-response pattern — this helps building modern web applications in a much more natural, flexible, and efficient way. The new WebSocket Client and WebSocket Server for IO Ninja are here to help you test and debug your WebSocket-based applications!

Device Monitor Updates

Device Monitor Updates

New versions of the Linux kernel often introduce breaking changes that cause Device Monitor to stop working with some (and sometimes, all) devices properly. This time, it was about (a) the employment of read_iter and write_iter file operations in the TTY kernel module and (b) memory page management on ARM. With this release, IO Ninja catches up — the Serial Monitor plugin for Linux is functional again!

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


Previous release announcements

Hardware Sniffers for IO Ninja


We are proud to introduce three hardware sniffers for IO Ninja. These devices are simple yet functional and convenient sniffers for asynchronous serial links (RS232, RS422, RS485, TTL-level UART), synchronous serial links (I2C, SPI) communications, and Ethernet.

IO Ninja Is Used At


ABB Schweiz AG
Airbus SAS
Atos
Australian Antarctic Program
Axis Communications
BOSCH Thermoteknik AB
Boston Scientific
Dover Fueling Solutions
DuPont
Facebook
Mitsubishi Electric
NovAtel
Seagate
Selex ES, Inc.
Siemens Mobility GmbH
Take Two Interactive
Teledyne Marine
Texas Instruments

Serial Communications

Performs serial communications over COM/VCOM/CDC serial devices on your machine.

Monitors serial communications performed by other processes over COM/VCOM/CDC serial devices on your machine.

Monitors serial communications over COM/VCOM/CDC serial device on a remote machine using an SSH connection to this remote machine.

Displays dump files previously captured with tdevmon in the machine interface (aka, MI) mode.

Monitors data flowing through popular tap-cables EZ-Tap Pro and Versa-Tap.

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

Analyzes a serial communications log and shows human-readable descriptions for Modbus RTU or Modbus ASCII messages.

Analyzes a serial communications log and shows human-readable descriptions for the Allen-Bradley DF1 protocol messages.

Implements XModem protocol for file transmit/receive over serial — or any transport (e.g. TCP, UDP, named pipe, etc.)

Network Communications

Establishes an outbound connection over a TCP client-side socket.

Listens for and accepts inbound connections 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 and writes everything to the log.

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

Reconstructs TCP communications from packets captured via Pcap and produces 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 produces a clean data flow view.

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

Establishes an outbound connection over a SSL client-side socket.

Listens for and accepts inbound connections to a SSL server-side socket.

Starts an SSH session over a TCP connection.

Establishes an outbound connection over a client-side WebSocket.

Listens for and accepts inbound connections to a server-side WebSocket.

A data-centric front-end for Pcap with payload previews visible instantly in the main log.

Analyzes a TCP connection log and shows human-readable descriptions for 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 named pipe. Windows only.

Monitors data transmitted over named pipes and anonymous pipes — both local and remote. Windows only.

Receives inbound messages to a server-side mailslot. Windows only.

Monitors data transmitted over mailslots on your Windows machine — both local and remote. Windows only.

USB Communications

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

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

Other Communications

Starts the shell or another process and communicates to its STDIN, STDOUT, and STDERR streams.

An advanced terminal for the J-Link RTT (real-time transfer) communications.

Generic Layers

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

The Replay Log layer plugin replays TX/RX records from a log file with respect to timestamps, thus preserving time intervals between packets.

Adjusts outbound packets — appends prefixes and/or suffixes, 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.

Platform Features

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 — use C escape-sequences, transmit files, fill packet fields using a property grid, or write a custom script to send one or more packets programmatically.

Write protocol analyzers, custom filters, testing scripts, and other utilities to extend existing sessions.

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

IO Ninja supports ANSI & X-Term terminal emulation; unlike other terminals, you can inspect terminal escape control sequences by switching to the log view.

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

IO Ninja can show and send characters in any Unicode encoding (UTF8, UTF16-LE, UTF16-BE, UTF32-LE, UTF32-BE).

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

IO Ninja comes with an IDE (integrated development environment) to make it convenient to write IO Ninja plugins in Jancy.

Screenshots

More screenshots & videos...