黒曜
@kokuyouwind
さくらインターネットとも
コミュニティとも
全く関係ない話をします
http://realdgame.jp/
ある部屋にあなたは突然閉じ込められる。
周りには同じ境遇の人たちがたくさんいる。 部屋にはさまざまなアイテム、暗号、パズルが隠されているようだ。
暗号を解き、鍵を開き、箱を開け、
制限時間内に最後の鍵を手に入れることができれば あなたは脱出に成功する。
楽しい!
自分も作りたい!
https://github.com/kokuyouwind/escape-from-the-repository
例題
アクセサヒープクラスフラグ
マクロコンパイラマージクロージャ
アセンブラバブルブールコメント
整列の前後を読め
(ソート)
答え:さくらクラブ
「謎解きを作る」という謎解き
Q.
正しい入力のときだけ出力が得られるスクリプトを書け。
ただし、ファイルを見ただけでは入力も出力も
わからないようにせよ。
また、1スクリプトに対し正しい入力は数種類あり、
それぞれ別の出力を返すようにせよ。
$ cat key invalid $ ./run.sh error: invalid key $ echo 'key1' > key $ ./run.sh これは正しいkeyです $ echo 'key2' > key $ ./run.sh これは別の正しいkeyです
#!/bin/sh cd `dirname $0` file=$(md5sum key | cut -c 1) openssl aes-256-cbc -d -in data/$file \ -pass file:key
正しいkeyを設定したはずなのに復号に失敗した。
なぜか。
A.
keyの終端に改行が入っていた。
opensslではpassは最初の行しか使用しないが、
md5sum値が変わって別の入力ファイルを見ていた。
#!/bin/sh cd `dirname $0` cat key | tr -d '\n' > key file=$(md5sum key | cut -c 1) openssl aes-256-cbc -d -in data/$file \ -pass file:key
ファイルを実行したらkeyファイルが空になった。
出力ファイルは新規モードでオープンするので、
入力が空になった。
#!/bin/sh cd `dirname $0` cat key | tr -d '\n' > key2; mv key2 key file=$(md5sum key | cut -c 1) openssl aes-256-cbc -d -in data/$file \ -pass file:key
他にも色々ありましたが、時間がないので割愛…
By 黒曜
脱出ゲームを作ったので、それをPRするLTスライドです。 https://github.com/kokuyouwind/escape-from-the-repository