KSNCTF #25 Reserved
問題
考えたこと
ぱっと見で単換字式暗号かなと思ったけど2ワード目が1文字な文はそんなになさそう。
よくみてると print
とか eval
, each
とか見たことある言葉も結構ある。
この辺でタイトルに気付いて、問題文はプログラミング言語の予約語から構成されてる気がした。
勉強したことない言語らしくてわからなかったので、たまたま目に入った getservbyname
という長めの言葉でググれば見つかる気がした。
「getservbyname 予約語」 でググるとこんな記事が出てきた。
http://developer.cybozu.co.jp/takesako/2007/05/fizzbuzz.html
Fizzbuzz を Perl で書くという記事だけど、2番の ppencode バージョンというやつがまさに問題文と一緒!ppencode というのが怪しい。
ppencode - JAPH perl program encode
調べてみたところ perl のコードの難読化のやり方で、見たとおり予約語だけを使うということらしい。しゅごい。
難読化しただけなので普通に実行できる。問題文を適当に reserved.pl
とかで保存して perl reserved.pl
で旗取れる。
ちょっと日が開いてしまったのでソースを忘れてしまったけど、キモい FizzBuzz 書ける自慢みたいな感じで、Perl の世界にもある文字列をどうやって出力するかみたいな遊びがあるらしい。なるほど。