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 (RS-232, RS-485, I2C, SPI, Modbus RTU, etc.), and others (named & anonymous pipes, USB endpoints, 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 swiss-army knife for debugging communications and a must-have tool for network security experts, system administrators, and all developers who deal with network programming in their line of work.

Rating:  4.8
49 votes

IO Ninja Is Used At

2022-09-16

IO Ninja 5.2.0 is out!

Major release


  • System dark UI theme support on macOS and Linux KDE
  • Color themes in terminal
  • Major redesign and optimization of the rendering engine behind the log, hex editor, and terminal widgets
  • Major improvements in xterm compatibility in terminal
  • Extended serial port information in all serial-based plugins
  • Bash-like navigation over the transmitted packet history
  • Support for *.njlog output in the IO Ninja Hardware Client

System Dark UI Theme

Many engineers prefer dark themes in their development tools — for various reasons, from causing less strain on the eyes to simply being aesthetically pleasing. Over the years, we received many requests for dark theme support in IO Ninja. We heard you, so starting with the release v5.2.0, IO Ninja will pick up on the system-wide dark theme. Currently, macOS and Linux with KDE desktops are supported; in the future, we'll take it a step further and allow switching to the dark mode everywhere, and at the user's will.

Terminal Color Themes

Tweaking individual ANSI colors in the IO Ninja terminal emulator was possible before, but only a few users actually did it — it was not quite convenient. Realizing this, we decided to improve the situation by adding a few popular terminal color schemes. These include the Tango theme loved by Linux users, xterm, PuTTY, and a few others. Choose the one you like!

Extended Serial Port Information

Yet another feature asked for by our users. Sometimes, there might be quite a few USB-to-Serial adapters plugged into your laptop — figuring out which one is which could be a challenge! IO Ninja will do its best to help you with this task by providing as many details about a serial device as possible. This includes information on the device path, manufacturer, model, hardware IDs, driver, and location in the system device tree.

Convenient Navigation Over Packet History

A few releases back, we replaced the old (implicit and invisible) transmit history with the dedicated Packet History pane. It was the right thing to do, but there was some collateral damage to it — the ability to navigate back and forth with "Up" and "Down" buttons and Ctrl+Up and Ctrl+Down shortcuts was gone. But now it's back, and it's better than before! We took the best from both approaches to give you the convenient and intuitive navigation over the list of transmitted packets. Think of what you have in shells like bash, but with the visual history!

Output As *.njlog In Hardware Client

Immediately after the initial release of Hardware Client, people tried using it to capture with a Serial Tap from the command line — but couldn't find a way to generate IO Ninja log files for further analysis. The Hardware Client tool was conceived primarily for remote capture using the ... over SSH plugins and simply didn't support output as *.njlog. Well, until now! In v5.2.0, ioninja-hwc introduces the new —njlog switch for emitting IO Ninja log files directly.

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


Previous release announcements

Hardware Sniffers


We proudly present you the 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.

Why You Should Use IO Ninja

Text vs Binary

Some protocols are text-based, and some are binary. Choose the representation that works best in each particular case and switch between the two kinds of data views any time you want.

Clear Timeline

Communications do not only consist of incoming and outgoing data — there are all kinds of other events (connect, disconnect, error, etc.) IO Ninja records everything in a single continuous log sheet to give you a clear timeline of events.

Regex Colorizer

Having too much information before your eyes can be counterproductive. Focus on what's important by automatically highlighting data in the log based on regular expression patterns.

Checksum Calculator

Many protocols use checksums to verify the integrity of data. IO Ninja calculates all standard checksums on the fly as you select data in the log then conveniently displays the results in a table together with local throughputs, time differences, byte offsets, etc.

Multiple Copy Modes

Сopy data from the log any way you want — as text, hex, C-array, etc. IO Ninja is smart and can guess what you want from the selection pattern so that a simple Ctrl+C always yields intuitive results.

Terminal Emulator

Sometimes, all you want is the classic terminal rendition of the incoming data. IO Ninja features a fully compatible X-Term terminal view to let you work with remote Linux boxes normally.

Transmission Facilities

IO Ninja features convenient and powerful tools for preparing packets before transmission. There's a plain text editor, a modern hex editor, and a file transmit facility — choose what works best.

Packet Templates

Even when you have a good hex editor, encoding fields of a binary packet by hand is hard and error-prone. With the Packet Template engine, you describe the packet structure in a C-like language, then conveniently edit your packet in the property grid.

Packet Library

Every time you transmit a packet, it goes to the Packet History pane. Re-transmit any packet with a double click, assign mnemonic names to packets, and build libraries of packets used in your line of work.

Redirect Anything

The Session Linking engine lets you redirect anything to anythingSerialTCP, UDPSSL, SSHWebSocket, etc. Start and configure two sessions, then click Link Sessions and voila! All the data will be propagated from one session to the other.

Scriptable

Sometimes you need to automate your testing routine. With the Script Pane, you can generate packets programmatically, wait for and react to events, automatically respond to incoming packets, etc.

Extensible Arch

IO Ninja is highly modular and all the plugins are open-source. See how they are implemented, modify any to your liking, or build something completely new. To make things convenient, do it with the code-assisting IDE that we use ourselves!


Interfaces, Transports, Protocols

Serial

Serial remains one of the most widely interfaces in IoT and industrial automation. IO Ninja provides you with a rich toolset for debugging serial communications.

Serial Tap
Serial Terminal
Serial Monitor

Ethernet

Hardware and software Ethernet sniffers in IO Ninja shine at live reconstruction of TCP & UDP data streams. We also provide full interoperability with the industry leader in packet capturing that is Wireshark.

Ethernet Tap
Ethernet Tap over SSH
Pcap Sniffer

I2C/SPI

Our hardware sniffer for I2C/SPI will give you the most convenient and easy-to-follow data view of I2C and SPI data streams. Works better than logic analyzers when you are interested in high-level data rather than the low-level signal details.

I2C/SPI Tap

TCP

TCP is rightfully called the language of the Internet. IO Ninja turns you into a professional linguist in this department.

TCP Terminal
TCP Server Terminal
TCP Flow Monitor

UDP

Not as widespread as TCP, the UDP protocol has its undisputed domain of application. With IO you have all the necessary tools to troubleshoot the connectionless UDP comms.

UDP Terminal
UDP Flow Monitor
UDP Flow Analyzer

SSL

SSL is the transport of the modern Web. IO Ninja gives you powerful terminals to work on both client and server sides of SSL connections.

SSL Terminal
SSL Server Terminal

SSH

Whenever you talk to a remote Linux box, you need SSH — so of course, there's a convenient SSH terminal in IO Ninja.

SSH Terminal

WebSocket

WebSockets are widely used in Web applications nowadays. IO Ninja features both client and server side terminals to help debugging your next WebSocket application.

WebSocket Terminal
WebSocket Server Terminal

Pipes

Named and anonymous pipes are important methods of inter-process communications (IPC). IO Ninja provides unique tools for pipe traffic generation and analysis. A must have for CompuSec researches!

File Stream Terminal
Named Pipe Server Terminal
Pipe Monitor

USB

We proudly present you the unique low-level USB endpoint terminals. These are indispensible tools if you develop a USB device that doesn't fall into a predefined standard device category.

USB Data Endpoint Terminal
USB Control Endpoint Terminal

Automation

IO Ninja is the best Modbus analyzer on the market, and we plan to gradually expand the list of supported automation protocols. Our protocol analyzers are implemented as layers so that they can be applied to raw data captured with any plugin.

Modbus Analyzer
DF1 Analyzer

Miscellaneous

IO Ninja is truly versatile, so there's much more than could be fit into the categories above.

J-Link RTT Terminal
Replay Log
TX Modifier