チーム “kyuridenamida” で前回と同じメンバー(kyuridenamidaさんは出ていません)で出てました。
結果は3005ptで19位でした。メンバーのMac率が66.66%だったのでWindowsバイナリはつらかったです。
Analysis - Offensive 100
ログイン・登録フォームとログイン履歴が見れるサイトが問題。SQLインジェクションは無し。Cookieを見ると user という名前でセッション管理しているらしい。
ログイン履歴をよく見ると UserId: 1 というユーザーが毎分1秒でログインしていることが分かった。(UserIDは登録順にユニークにつくようだ)
何気なく UserID 1 と同時(毎分1秒)にログインしてみたら突如としてフラグが出現し声が出た。流石にびっくり。
Analysis - Offensive 200
.apkファイルが与えられる。とりあえず起動してみると、なんとかクリッカーみたいなのが出てくる。どうやら10^7回ぐらいクリックすればOKらしい。
自動クリックツールを使ってみたけど300click/sぐらいしか速度が出なくて無理そう。
デコンパイルしてみると難読化がかかっている。どうやらflagのかけらが散らばっていてそれを集めているっぽいけどうーん。
コードを読むのは放棄して、チートすることを考える。
ApkMultitoolsというものを使うとソースコードを書き換えて再コンパイルできるっぽいのでやる。
不正防止部分を微妙に書き換えて、1クリックで800枚増えるようにしてバーーーッってやったらフラグが出た。
Analysis - Defensive 100
Linuxの実行ファイルが与えられる。普通に実行してもNOT ON VMM(うろ覚え)みたいな文字列が出るだけでかなしといった感じ。
とりあえずdisas mainすると、putsが二回あり、事あるごとにNOT ON VMMの方のputsに飛ばそうとしてくる、という事がわかる。
飛ばそうとしてくるたびに飛ばされないように適当にレジスタの値を弄ったらフラグが出た。
Analysis - Others 100
破損したPDFが与えられる。exiftool曰くxrefが破損しているらしいので温かみのある手打ちで回復(ところどころPythonの力を借りる)。その後PDFのプレビュー画像を抽出するとフラグが出る。
Cryptography 100
RSA暗号の公開鍵が与えられる。1bitだけ本来とは変えられているらしい。
偶数だったので、明らかに最後のbitが違う。それを変えたらあとはPari/GPに突っ込めば素因数分解されてOK。
Cryptography 200
なんか暗号。3つ黒塗りがあるが、色調調整すると一番下の黒塗りは透ける。
実際それを使う必要はなくて、適当にxorとか取るとKeyが特定できる。
隠されていたのは7$なのだが、alphadigitだけで総当たりしていたため出てこなくてハマった。
Cryptography 500
アルファベットで構成された異なる文字列 a, b について、a’ = base64(a), b’ = base64(b) としたとき、ある i について a’[i] = b’[i] = c となるBase64上の文字 c を考える。この時いかなるa, bについて、 c になり得ないBase64上の文字は何か?という問題。
総当りのプログラムすら面倒なので、ランダムで試してみた。すると “/+7f” の文字が出た。Base64のWikipediaを見ても大体あってるのでこれでOKっぽかったのでsubmit。色々あった後AC。
使ったコード→https://gist.github.com/45deg/a648e56769b2465bf14b
Programming 100
色がついた NxN のパネルの画像があり、1つだけ他のものと色が違う。そのパネルをクリックしろという問題。
とりあえず、画像の中で白を除いて2番目に多い色の座標を取得してクエリを投げるスクリプトをJSで書いた。割りと雑に書いたが、少しは誤答してもOKだったし、制限時間もシビアじゃなかったのでゴリ押しで通した。
使ったコード→https://gist.github.com/45deg/c5516ef88e178ca0e4ee
Programming 200
やることは電卓を作るだけ。ただしクソみたいな入力がやってくる。
基本的にはpythonの読める数式に変換してevalを行うだけ。大変。
Programming 300
ダンジョン探索。僕は問題を誤読していて(x座標, y座標, power, エナジーを取ったかのフラグ, チェックポイントを通ったかのフラグ)でbitDPをしたけども相当エナジーが余ったので相当適当な方法でも通ると予想される。
Programming 400
単純にやると16!. これは普通にやるには多すぎるが、死ぬほど大きいというわけでもない。
多分なんでもいいので単純な探索になんらかの改善を入れれば通ると思う。僕は両側探索をした。
Programming 500
なんで500なんだろう。やるだけ。
全探索ができるので、ブラックジャックのルールを抜けなく理解できているかというだけ。
僕はあまりブラックジャックに詳しくないので困った。
Miscellaneous 200
じゃんけんの手をクエリで投げてAIに対して20連勝しろという問題。だが、スクリプトのURLの最後に / つけたらフラグが記載してあるソースコードが見えて真顔になる。
これは出題ミスなのかなと思ったが Category: Misc なのでウーンと言った感じ。真面目に解こうとすると結構難しいので実は想定解?
Miscellaneous 500 (unsolved)
ぬいぐるみがモールス信号を発信している謎のムービーが与えられる。音声解析すると以下の様なスペクトラムが現れる。また、モールス信号を解析すると「gay+r0nCJXRlXrXjdESbKfbby2ujBg1D」との文字列が出てきた。mp4のcommentに”TEA is Broken” とのコメントを確認。しかしこれ以上の情報は得られず詰み。








謎のスペクトラムは http://homepage1.nifty.com/pawn/hunter/
TEA は Tiny Encryption Algorithm を指すと思われます