## Six levels of decoding

I just finished solving this puzzle: http://dow.ngra.de/2010/02/18/a-job-offer-and-a-kinda-cool-puzzle/. I have included my solution below. All input I have entered appears in italics. The first input I have entered is the puzzle. The last output is the solution.

susam@swift:~/puzzle$cat > puzzle.txt UEsDBBQAAAAIAIVyUjx/yWgsbQIAAP0CAAAHABwAcHJvYmxlbVVUCQADeTB9S3ow fUt1eAsAAQToAwAABOgDAAAdUsmumlAA3fcrGtNFX1zABblgXm2jOACXSRBEY9Jc 5knmSb6+vi7OkJyzO+fXnx8T6W4WrB3LbiuOBxXMfNRNW8Wn9NipMa4QbVv8MQVL 05STYRfqADEysKpWFm/3mViqu5EtXlzGPVl6zauMly7vUNt3S9ji1LESwdn63jCN DZkNHrzCc78lb8/mucZtFFM45ckrs1XnmtOYo34WENfnXkzC9vQ6s3sJEpCifalp BtvFDjI50bJunpHhegTuhAKuKsh49uGhN9tXPJpkNxknpCaHjgoxivp4MNg4YQSG V+K8IXs3KvSzK2IcaJOxvWny89ztEn66vIpYcNpw1jnkr7CplWUCGGNneZ0Y3mdK du/0Ss2S8Zqve2ZQWWQcIsDMh/spoPTCEujcunKTWHZ9JZryK6YlAqi7Z+4noaHM +SC2KyYws6Vk3gqt4FuqESqyfQ6jSjfkIO0yXJgXr6zUI0L6+CKOcmjZvkFyrmxd 92QoKQ0WHcmRqgiKJ7+I6J0xK8d70ALbNBQh8LMlPLlBefMRVfOVkupsao181s+X alqrQprbp3QH0CuTxEminYhUtGLm8htNsEVWaVvbzxrTTGTuAqlSEbsXQiMdjSCh SxWaNYe6hknmS6ND+6g01+aoFnZ/qaURCYTRQBEf9vEp9UmrIxTb7bnzMOFzaFE1 cagV4M+WbexrQrDLPf/eqjROlTqeNYFVbwpYLvV+HTgdbcxavlan9ZhtFp/vb3qb hYsfE0sHcPXXf0yQeYAV/dbQfxvmfyfYLKIHYKkHYMA7Cd6Ab3i4Cxaf34MB5z+/ Wl/kfZH78fHx+ef3t39QSwECHgMUAAAACACFclI8f8loLG0CAAD9AgAABwAYAAAA AAABAAAApIEAAAAAcHJvYmxlbVVUBQADeTB9S3V4CwABBOgDAAAE6AMAAFBLBQYA AAAAAQABAE0AAACuAgAAAAA= susam@swift:~/puzzle$ cat puzzle.txt | tr -d "
" |
base64 -d > x

susam@swift:~/puzzle$file x x: Zip archive data, at least v2.0 to extract susam@swift:~/puzzle$ unzip x

Archive:  x

inflating: problem

susam@swift:~/puzzle$file problem problem: ASCII text, with very long lines susam@swift:~/puzzle$ fold -w 75 problem

<?$x0b="7VhLbsIwEN1zCgtxAMd2PhXqaapK3VUCFj1+SSLivBfP1K5L1UpsLIYZz/+NBw7ny8k 8m739CN5cj+Z6ODt+6sajXUiHXAdcvxwr0kvc6W6QuA0Ymrm9asgh2ajC0W5ANzq8O5FPQHK8ul ch06sGyQ7DJ6/623dJrrvVbaXKS8IUUYcRkaqw1bxKe8pn0hzd6EuSsyhwS0txRGKNiEt2faKgu hvR7hi5H5CMhlr0ubgnPQbIaaeOxRAYOLmQtBiCxTynhHXsfzP8Kd4aSOooi15RBUctIfZz2LbZ 34NkiwWl9u5vN7KREg15zEZGe2PnUH3lUW8xIotupISLyh3J/1NBmldifRMzlvIs45eSk+JSYnO nCs2rHp0smvwN3r0vJBkanSTcopNFKKPwy/FLfUVdR08bLUWD0fJMraIXJXJpg6IGdng3BRzMFZ es1VSRMHedk+6GbeoYdK2qCpMjP7jUwCkuzTpx9NHjlVGjB1KykJIxJ3Xg0MOnz8lY3/7nkpOAV dkrSSiL8T62oMItyKKw3gw1i3oN6Sq8Ktr5izTrP6VFMrWrFNnVuTqJwKH/Rr6IaEDhGjd0Ut/M Vbu8QvxaQfU2q/EqM1dzUVRDq/HVoDCSsyoRGpNwQOH7NYM1++Pu9eXt3RzOl9Nx9wk=";$x0c=

"base64_decode";$x0e="gzinflate"; eval($x0e($x0c($x0b)));?>

susam@swift:~/puzzle$php5 problem > y susam@swift:~/puzzle$ file y

y: ASCII text, with very long lines, with no line terminators

susam@swift:~/puzzle$fold -w 75 y | head -5 0x43 0x41 0x20 0x46 0x45 0x20 0x42 0x41 0x20 0x42 0x45 0x20 0x30 0x30 0x20 0x30 0x33 0x20 0x30 0x30 0x20 0x32 0x44 0x20 0x30 0x30 0x20 0x31 0x41 0x20 0x30 0x37 0x20 0x30 0x30 0x20 0x30 0x32 0x20 0x30 0x31 0x20 0x30 0x30 0x20 0x30 0x34 0x20 0x34 0x44 0x20 0x36 0x31 0x20 0x36 0x39 0x20 0x36 0x45 0x20 0x30 0x37 0x20 0x30 0x30 0x20 0x30 0x34 0x20 0x30 0x31 0x20 0x30 0x30 0x20 susam@swift:~/puzzle$ echo -ne cat y | tr -d "
"
| tr -d " " | sed 's/0x/\\x/g' > z

susam@swift:~/puzzle$file z z: ASCII text, with very long lines, with no line terminators susam@swift:~/puzzle$ fold -w 75 z | head -5

CA FE BA BE 00 03 00 2D 00 1A 07 00 02 01 00 04 4D 61 69 6E 07 00 04 01
00

10 6A 61 76 61 2F 6C 61 6E 67 2F 4F 62 6A 65 63 74 01 00 06 3C 69 6E 69
74

3E 01 00 03 28 29 56 01 00 04 43 6F 64 65 0A 00 03 00 09 0C 00 05 00 06
01

00 04 6D 61 69 6E 01 00 16 28 5B 4C 6A 61 76 61 2F 6C 61 6E 67 2F 53 74
72

69 6E 67 3B 29 56 09 00 0D 00 0F 07 00 0E 01 00 10 6A 61 76 61 2F 6C 61
6E

susam@swift:~/puzzle$echo -ne cat z | tr -d " " | sed 's/../\\x&/g' > Foo.class susam@swift:~/puzzle$ xxd -g1 Foo.class

0000000: ca fe ba be 00 03 00 2d 00 1a 07 00 02 01 00 04
.......-........

0000010: 4d 61 69 6e 07 00 04 01 00 10 6a 61 76 61 2f 6c
Main......java/l

0000020: 61 6e 67 2f 4f 62 6a 65 63 74 01 00 06 3c 69 6e
ang/Object...<in

0000030: 69 74 3e 01 00 03 28 29 56 01 00 04 43 6f 64 65
it>...()V...Code

0000040: 0a 00 03 00 09 0c 00 05 00 06 01 00 04 6d 61 69
.............mai

0000050: 6e 01 00 16 28 5b 4c 6a 61 76 61 2f 6c 61 6e 67
n...([Ljava/lang

0000060: 2f 53 74 72 69 6e 67 3b 29 56 09 00 0d 00 0f 07
/String;)V......

0000070: 00 0e 01 00 10 6a 61 76 61 2f 6c 61 6e 67 2f 53
.....java/lang/S

0000080: 79 73 74 65 6d 0c 00 10 00 11 01 00 03 6f 75 74
ystem........out

0000090: 01 00 15 4c 6a 61 76 61 2f 69 6f 2f 50 72 69 6e
...Ljava/io/Prin

00000a0: 74 53 74 72 65 61 6d 3b 08 00 13 01 00 11 4d 79
tStream;......My

00000b0: 20 6c 69 66 65 20 66 6f 72 20 41 69 75 72 21 0a   life for
Aiur!.

00000c0: 00 15 00 17 07 00 16 01 00 13 6a 61 76 61 2f 69
..........java/i

00000d0: 6f 2f 50 72 69 6e 74 53 74 72 65 61 6d 0c 00 18
o/PrintStream...

00000e0: 00 19 01 00 07 70 72 69 6e 74 6c 6e 01 00 15 28
.....println...(

00000f0: 4c 6a 61 76 61 2f 6c 61 6e 67 2f 53 74 72 69 6e
Ljava/lang/Strin

0000100: 67 3b 29 56 00 21 00 01 00 03 00 00 00 00 00 02
g;)V.!..........

0000110: 00 01 00 05 00 06 00 01 00 07 00 00 00 11 00 01
................

0000120: 00 01 00 00 00 05 2a b7 00 08 b1 00 00 00 00 00
......*.........

0000130: 09 00 0a 00 0b 00 01 00 07 00 00 00 15 00 02 00
................

0000140: 01 00 00 00 09 b2 00 0c 12 12 b6 00 14 b1 00 00
................

0000150: 00 00 00 00                                      ....

susam@swift:~/puzzle$mv Foo.class Main.class susam@swift:~/puzzle$ java Main

My life for Aiur!

#### Priyank Bolia said:

Cool, This is so fast on Linux, on Windows it took me a hell, more than 20 minutes to do the same. Where do you work?

#### Susam Pal said:

Priyank, That's why I love Linux. The huge number of tools and commands makes life simpler and easier. On Windows, it is a bit of work to search the internet and find the right tools for a particular job and install them. However, installing Cygwin on Windows helps to an extent. I work at RSA.

#### Jevgeni Kabanov said:

Thanks for the solution, but we forbid answers in comments. When we close the puzzle we'll post links to solutions.

starcraft :)