Nyaruko (2012-09-10)

Binary to encrypted text filter.

Given some input in stdin, Nyaruko will generate a C code that
reproduces this input on stdout:

   ./nyaruko < input.bin > output.c

   gcc output.c -o output
   ./output > regenerated.bin

Output is encrypted, but both key and data are included in the output.
To separate the key from the data:

   bash output.c > key.c
   perl output.c > data.c

Concatenate them back to get back something functionally equivalent to
the original output.c:

   cat key.c data.c > output.c
   cat data.c key.c > output.c

data.c by itself still compiles and runs, but generates a different
message on stdout.  data.c combined with an incorrect key.c will still
compile and run, but the output will be totally random.

By default, Nyaruko generates a unique random key using /dev/urandom.
Specifying an extra argument will make this key deterministic:

   ./nyaruko seed.txt < input.bin > output.c

This should always be done on systems that do not have /dev/urandom.

Template is based on Nyaruko, from "Haiyore!  Nyaruko-san".

Nyaruko won the "most surreptitious" award for the 21st IOCCC.

-- -