黒曜
@kokuyouwind
さくらインターネットとも
コミュニティとも
全く関係ない話をします
ある部屋にあなたは突然閉じ込められる。
周りには同じ境遇の人たちがたくさんいる。
部屋にはさまざまなアイテム、暗号、パズルが隠されているようだ。
暗号を解き、鍵を開き、箱を開け、
制限時間内に最後の鍵を手に入れることができれば
あなたは脱出に成功する。
楽しい!
自分も作りたい!
例題
アクセサヒープクラスフラグ
マクロコンパイラマージクロージャ
アセンブラバブルブールコメント
整列の前後を読め
アクセサヒープクラスフラグ
マクロコンパイラマージクロージャ
アセンブラバブルブールコメント
整列の前後を読め
(ソート)
アクセサヒープクラスフラグ
マクロコンパイラマージクロージャ
アセンブラバブルブールコメント
整列の前後を読め
(ソート)
アクセサヒープクラスフラグ
マクロコンパイラマージクロージャ
アセンブラバブルブールコメント
整列の前後を読め
(ソート)
アクセサヒープクラスフラグ
マクロコンパイラマージクロージャ
アセンブラバブルブールコメント
整列の前後を読め
(ソート)
答え:さくらクラブ
「謎解きを作る」という謎解き
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
Q.
正しいkeyを設定したはずなのに復号に失敗した。
なぜか。
Q.
正しい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
Q.
ファイルを実行したらkeyファイルが空になった。
なぜか。
Q.
ファイルを実行したらkeyファイルが空になった。
なぜか。
A.
出力ファイルは新規モードでオープンするので、
入力が空になった。
#!/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
他にも色々ありましたが、時間がないので割愛…