IO Ninja allows you to prepare packets for transmission in multiple ways.
You can enter just text into the IO Ninja text editor. In this mode IO Ninja supports insertion of special characters via escape sequences (
\r \t \xff and so on).
Binary packet transmission is where IO Ninja shines. It has a built-in modern Unicode-enabled hex-editor with insert/overwrite modes that lets you edit nibbles, highlights the selected octet, and shows the current offset and selected range.
Even more important, IO Ninja now comes with packet template editor, which allows describing the packet structure in Jancy language, and then edit its individual fields with a property grid!
Jancy is ABI-compatible with C, supports structure packing, bit fields and even integers with inversed byte order, aka bigendians! So you can describe any packet header, just like in C/C++ — and even better!
Common packet-building actions like "initialize", "calculate-checksum", "encode-name", etc can be programmed once and then accessed via hyperlinks in the property grid.