IO Ninja 5.3.0 Is Out!
Major release

  • New Form UI for plugins
  • New Log Regex Markup engine to colorize and "packetize" data
  • New USB Endpoint plugin for low-level transfers over data or control endpoints on USB devices
  • New USB Monitor plugin for convenient sniffing of USB communications on a PC
  • Auto-applied log filter plugins — work with standalone log files, too!
  • A critical fix in tdevmon for modern Linux kernels on ARM

Form UI

Until now, plugins could only have user interface (UI) elements in the toolbar and status bar — plus, of course, the property grid on the modal "Settings" dialog. This worked OK in most cases, but that nevertheless was a serious limitation whenever a more complex UI was required. Additionally, this approach produced somewhat messy results when combining multiple layers — imagine each adding their own widgets to the toolbar and status bar!

Now, the problem is solved once and for all. Every plugin can use fully-fledged form layouts without any limitations. Buttons, checkboxes, labels, line editors, combo boxes, lists — every UI tool in the book is now at your disposal. This capability makes IO Ninja more convenient and easier to extend than ever!

Log Regex Markup

The ability to highlight what's important in the log has been our design goal since day one. However, the approach to this goal has changed throughout different releases of IO Ninja.

Originally, it was necessary to parse data with a plugin and then generate a new log with highlighted data regions. Later, we introduced regex-based colorization, but it required rebuilding the log to apply the new colorization rules. IO Ninja 5.1.1 featured a regex colorizer that allowed applying colorization on-the-fly, without the need to rebuild the log.

In version 5.3, we are proud to introduce another important update to the log data highlighter in IO Ninja. This update is significant enough to rename the feature — because it's no longer just about colorization. Now, besides highlighting regex matches, you can also "packetize" the stream, i.e., insert lines between packets to visually separate packets and highlight packet boundaries, thus making it much easier to comprehend and analyze data streams.

USB Endpoint Terminal

For quite a while, IO Ninja featured a unique and essential tool for developers of USB devices — a low-level USB endpoint terminal. The newly introduced form UI allowed us to add a major boost to our USB debug tools. Now, the new USB endpoint terminal can work with multiple USB endpoints simultaneously and conveniently prepare and send arbitrary control transfers — without needing to switch between control/data endpoint terminals as before!

USB Monitor

In this release, we answered your long-time requests for a USB sniffing tool. Now IO Ninja can intercept and display the activity of any USB device attached to your PC.

The new USB Monitor plugin currently works on Windows and Linux only. On Windows, it uses the reliable and well-tested USBPcap engine — the same one that powers USB capturing in Wireshark. On Linux, we use usbmon, which is simply a part of the Linux kernel.

We are happy to say that IO Ninja produces much more convenient and easy-to-follow output compared to many other commercially available USB sniffing tools. Try IO Ninja USB tools for free and see for yourself!

Auto-applied Log Filter Plugins

In most cases, the log should be filtered in a way specific to a particular session. For example, in a Serial log, we might want to hide all status line changes; in an Ethernet Tap capture log, only leave TCP traffic to a specific node; in a TCP Server log, hide conversations to all clients except one — you get the idea.

Until now, IO Ninja offered:

  • Record code filters (i.e., show or hide log records of specific types) that could be auto-applied to specific log types — convenient, but unsuitable for any non-trivial filtering logic.

  • General-purpose filter scripts that can implement any filtering logic you need, but must be manually attached as layers (after the log is opened).

Now, we offer the best of the two worlds — powerful general-purpose filters can be "registered" as auto-applicable based on the log type (e.g., all TCP Server Session logs will have a "Client" filter).

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