Process
The Process plugin allows you to start a shell (or any other process) and then directly communicate to its STDIN
, STDOUT
, and STDERR
streams. This functionality comes indispensable when the process in question outputs (or expects as input) some binary data. For instance, if you open your regular terminal console and run netcat
or openssl
to connect to a web-server, and then issue a GET
request to fetch some binary resource, the output will be incomprehensible due to its binary nature. IO Ninja, on the other hand, is tailor-made to handle binary data elegantly and efficiently, so you will have no problem inspecting and analyzing binary output of a process (or feeding a binary request to its STDIN
stream). Another prominent feature of the Process plugin is that unlike a regular terminal console, it can separate between STDOUT
and STDERR
streams.
Basic Setup
In IO Ninja, click the “New Session” dropdown and select “Process”.

Enter your command, e.g.,
cmd
.

Press the “Start” button to start the session.

Use the “Transmit” pane to craft a custom packet, and then press send.

Adjust settings as needed via the “Settings” button (see “Settings” section below for details).
Settings

Setting |
Description |
Default |
---|---|---|
Command |
Name of the process you would like to start, e.g., “cmd”. |
|
Separate STDERR |
Whether or not to read and display |
True |
Clean environment |
Whether or not to start from a clean environment (don’t inherit parent environment variables). |
False |
Environment variables |
Custom environment variables for the process. |
|
Read parallelism
(Windows-only)
|
Maximum number of read requests to issue in parallel. Having more than one pending read at a time helps with increasing read throughput when incoming data arrives in rapid streams (after filling one user buffer, the kernel can immediately switch to the next one without any waiting). Increasing this number beyond 4 usually won’t yield any extra performance gains. |
4 |
Read block size (B) |
The size of each individual read block submitted to the underlying transport. |
4KB |
RX buffer size (B) |
The full size of the incoming data (RX) buffer. Affects read throughput. |
16KB |
TX buffer size (B) |
The full size of the outbound data (TX) buffer. Affects write throughput. |
16KB |
Keep read block size |
Don’t merge read blocks in RX buffer. Incoming data blocks coming in quick succession can be merged together so that IO Ninja writes them to log as a whole. When this option is set to |
False |
Keep write block size |
Don’t merge write blocks in TX buffer. Outbound data blocks sent in quick succession can be merged together before submission to the underlying transport. When this option is set to |
False |
RX buffer full notifications |
Toggle warnings in log about the incoming data (RX) buffer getting full. |
False |