今回、大阪はサテライトが開催ということで現地参戦しました。
下みたいな感じで盛り上がってました
みんなPCに向かってクスクス笑っているっていう盛り上がりかたしてます#シェル芸
— たいちょー (@xztaityozx_001) 2022年12月3日
問題と解答
いつものように時間中に解いた答えなどを記録していきます。PowerShell解は気が向いたらやります
Q1
message.pptx
からデータを削り出していき、unko
を得る問題
$ cat She*/*62/mess* | grep -aoPe 'u|n|k|o' | uniq | tr -d \\n | grep -o unko unko
grep
の-a
でバイナリ内を検索します。出てきた文字から連続部分をuniq
で圧縮したり、tr
で改行を消したあと、最後にgrep
でunko
を取り出すという感じですね。削り出しでいいのでこれで解答としました
Q2
img
ディレクトリ以下のファイルがPNGかどうかを判断する問題
$ ls She*/*.62/img/* | awk '{print "xxd", $1, "|head -n1|grep -q PNG && echo",$1,"PNG || echo",$1,"PNGじゃない"}' | bash ShellGeiData/vol.62/img/img1.png PNG ShellGeiData/vol.62/img/img2.png PNGじゃない ShellGeiData/vol.62/img/img3.png PNG ShellGeiData/vol.62/img/img4.png PNGじゃない
バイナリを直接見る感じでやってみました。でもこれねPNGって書いてあったらだめだねこれね。file
で判断するのが賢いと思います
Q3
PNG画像からプログラム取り出して実行する問題
$ convert She*/*.62/prog* pgm:- | sed 1,3d > a && chmod +x ./a && ./a これはUNKOの画像です。
PGMから生成されたというヒントがあったので、PGMに戻してやったあとのヘッダー部分を取り除いた残りの部分をファイルに書き出しました。実はこの部分がプログラムなので実行権限を付けてやれば解けるということですね。
Q4
さっきのような画像を作る問題
$ cat > src.pgm P5 2 23 255 #!/bin/bash echo おはようございます $ convert src.pgm dest.PNG $ convert dest.PNG pgm:- | sed 1,3d | bash おはようございます
解答例としても紹介されていたシェルスクリプトを仕込む感じにしてみました。本当はowari
とか仕込んでやればよかったんですけど、ファイルサイズがいい感じの素因数分解できなくて諦めました
Q5
message.pptx
に書いてあるメッセージを読み取る問題
$ cd She*/*.62/ $ unzip messag* &> /dev/null $ cat ppt/slides/slide1.xml | grep -oPe '<a:t>[^<]*</a:t>' | sel -gd'<|>' 3 メッセージ これを読んでいるころは、 シェル芸勉強会に参加されていることでしょう。 どうせ、yes ウンコとかコマンドを 打たさせていると思うと、大変残念です。 どんまいける!
どんまいける!pptxはzipっていうのはいつもそういえばそうでしたって感じになりますね。
Q6
nanika_data.tar
内にあるファイルをタイムスタンプ順で並び替え ファイル名
-> 内容
の順番で読みだすと文章になります。ここからいろいろ取り出してくださいという問題
時間内には解けず…。tar
の仕様を読んだりTLの解答を試したりしてました。\0
が厄介でしたね~~~
LT
今回もLTしました!!!!!!!
ワタナベにとりつかれてしまったという話をしてしまいました。
takaさんのLTがかなり興味深かったです。勉強になる
おわり
今回も楽しかったです。近くに呻いている人がいるのはいいですね。 企画運営などありがとうございました!