Process

Go To Product Page

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

  1. In IO Ninja, click the “New Session” dropdown and select “Process”.

_images/process-new-session.png
  1. Enter your command, e.g., cmd.

_images/process-command.png
  1. Press the “Start” button to start the session.

_images/process-connect.png
  1. Use the “Transmit” pane to craft a custom packet, and then press send.

_images/process-transmit.png
  1. Adjust settings as needed via the “Settings” button (see “Settings” section below for details).

Settings

_images/process-settings.png

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 STDOUT and STDERR separately.

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 True, blocks are written to the log without merging, i.e., exactly as they are received from the underlying transport.

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 True, blocks are submitted to the transport without merging, i.e., exactly as they are sent by the Transmit or Script panes.

False

RX buffer full notifications

Toggle warnings in log about the incoming data (RX) buffer getting full.

False