Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

socatの入出力でエスケープ文字を設定

実際のところ

以下の例ではバイナリ”0xdeadbeef"が送られるものの、escapeに0xbeが設定されているためそこで読み込み中止、stdoutには\xdeadが出力されます。

echo "\xde\xad\xbe\xef" | socat stdio,escape=0xbe stdio

使えるのはSTDIOに限りません。
UDPで受けた値を0x03をエスケープしつつ、myfileの末尾に書き足していくようなコマンドは以下の通り

socat UDP-LISTEN:9999,fork,escape=0x03 OPEN:/root/myfile.log,append