sekai013's blog

JavaScriptとかを勉強する

KSNCTF #25 Reserved

問題

ksnctf - 25 Reserved

考えたこと

ぱっと見で単換字式暗号かなと思ったけど2ワード目が1文字な文はそんなになさそう。

よくみてると print とか eval, each とか見たことある言葉も結構ある。

この辺でタイトルに気付いて、問題文はプログラミング言語予約語から構成されてる気がした。

勉強したことない言語らしくてわからなかったので、たまたま目に入った getservbyname という長めの言葉でググれば見つかる気がした。

「getservbyname 予約語」 でググるとこんな記事が出てきた。

http://developer.cybozu.co.jp/takesako/2007/05/fizzbuzz.html

FizzbuzzPerl で書くという記事だけど、2番の ppencode バージョンというやつがまさに問題文と一緒!ppencode というのが怪しい。

ppencode - JAPH perl program encode

調べてみたところ perl のコードの難読化のやり方で、見たとおり予約語だけを使うということらしい。しゅごい。

難読化しただけなので普通に実行できる。問題文を適当に reserved.pl とかで保存して perl reserved.pl で旗取れる。

ちょっと日が開いてしまったのでソースを忘れてしまったけど、キモい FizzBuzz 書ける自慢みたいな感じで、Perl の世界にもある文字列をどうやって出力するかみたいな遊びがあるらしい。なるほど。