Nicola Coretti
2026-02-11
+-----------+-------------------+-----------------------+
| **Byte** | **Description** | **Values** |
+-----------+-------------------+-----------------------+
| Byte 0 | Transformation | 0x00: None |
| | | 0x01: Upper |
| | | 0x02: Lower |
+-----------+-------------------+-----------------------+
| Byte 1 | Length | 0-255 (Single byte) |
+-----------+-------------------+-----------------------+
| Bytes 2+ | String Data | Raw ASCII/UTF-8 bytes |
+-----------+-------------------+-----------------------+
Input: “hello” → Uppercase
| Field | Value | Hex |
|---|---|---|
| Transformation | Uppercase | 0x01 |
| Length | 5 | 0x05 |
| String | “hello” | 68 65 6C 6C 6F |
Input:
Payload: 0x01 0x05 0x68 0x65 0x6C 0x6C 0x6F
Output:
Input:
Output:
Payload: 0x01 0x05 0x68 0x65 0x6C 0x6C 0x6F
Decode (decode.py)Transform (server.py)Encode (encode.py)socat [options] <ADDRESS> <ADDRESS>
<TYPE>:<ADDRESS-SPEC>[,OPTIONS]
-d, -d2, -d3,
-d4-v, -x, -rFD, OPEN, SOCKET, UNIX, TCP, …
raw, rawerforkmode, user, groupreuseaddr(Default)
(Dualaddress)