ぺんぎんさんのおうち

日本語勉強中のドイツ産ペンギンがいろんなことを書く

18.09.2017

起きたらお昼. 笑った.

 

やる気が起きなかったのでふと思い立ってcpaw(無印)始めた.

23問のうち18問やって終わった.

解けてない問題について語る.

 

・Stego100

9割5分フラグわかってるけど最後が

 

・Misc100

多分こうやってフラグ作ってるんだろうな〜と予想したけどどうやって動かすかわからなかった

 

・Network100

集めなきゃいけないデータたちは回収できた(ほんまか?)けど, この後どうしたらいいかわからなかった

 

・Rev200

バイナリから逃げた

ちゃんと読みます.

 

・Crypto200

eが小さい場合のRSAを以前どこかで見た記憶があったので, それを頼りに頑張ったけど答え違った. びええええん

 

夜はふと思い立ってcpaw2始めた

計算いっぱいするやつとcryptoを1問やった

 

 

留学満了まで149日

CSAW CTF Qualification Round 2017 [Another Xor]

時間内に解けなかったので供養のために..

Ph03nix Team: [CSAW_Qualification_2017] Another Xor

参考にさせていただきました。

日本語訳して僕の解釈を入れただけになりますがご容赦ください。

まず問題は、

2つの引数(key, flag)を取り、flag + keyを結合したものに更にmd5(flag + key)を結合したものを keyをn回繰り返したもの(文字数は調整されている)とXORとるようになってました。

文章だとわかりにくいので数式っぽく書くと

enc = 
flag + key + md5( flag + key)
xor
key + key + key + ...

ここでFLAGの最初の5文字は flag{ になることがわかってるので、enc[:5] xor 'flag{' すると
A qua が得られました。

次に、keyが何回繰り返されているかを確かめるためにmd5ハッシュ化されたenc[-32:]を見てやる必要があります。大会中の僕は、どうせxorとったところでflagもkeyもわからないし意味ないだろうと思ってました。

def check_md5(enc):
    for i, ch in enumerate(enc):
      print(i+105),
      for j in xrange(33, 127):
        if chr(j ^ ord(ch)) in '1234567890abcdef': # char(s) used by md5
          print(chr(j)),
      print

総当たりで見ていって、A qa が順に現れる部分を探します。するとenc[134]だけに A がいました。 135, 136にもそれぞれq があるので、 KEY を key の繰り返しとすると

KEY == key * n + 'A q'

になります。

次は flag と key の文字数と key の繰り返し回数 n を決定します。
key は 1 回以上の繰り返し回数nを持ち、len(key*n) が 137からA qを引いた134文字より多くなってはいけないので、現在わかっているflagの5文字を合わせると

5 < len(key) < 134
1 < n < 26 ( floor( 134 / 5 ) )
len(key * n) == 134

の条件が成り立つようにそれぞれ求めればいいことになります。 これを満たす n は 2 なので、key は 67[文字]、 flag は 105-67 で 38[文字]となります。

ということは、

flag + key = "flag{" + "_"*33 + "A qua" + "_"*62
KEY = "A qua" + "_"*62 + "A qua" + "_"*62 + "A q"

これでKEYを復元しつつ、flagを得ることができます。

solverです

plain='flag{' + '_'*(38-5) + 'A qua' + '_'*(67-5)
key='A qua' + '_'*(67-5) + 'A qua' + '_'*(67-5) + 'A q'

cipher = open("encrypted").read()
cipher = cipher.decode("hex")

prev = ''
while prev != plain:
  prev = plain
  plain=list(plain)
  key=list(key)

  for i in xrange(len(plain)):
    if plain[i] == '_' and key[i] != '_':
      plain[i] = chr(ord(cipher[i]) ^ ord(key[i]))
    if plain[i] != '_' and key[i] == '_':
      key[i] = chr(ord(cipher[i]) ^ ord(plain[i]))

  plain = ''.join(plain)
  key = ''.join(key)

  print(plain)
  key = plain[38:]*2 + 'A q'

print(plain[:38])

FLAG : flag{sti11_us3_da_x0r_for_my_s3cratz}

ただただなるほどな〜といった感じ。
確か解答してるチーム結構いたので、そこまで難しくなかったようです….

17.09.2017

普通に忘れてた.

 

ちょっとした開発にちょっとした進捗が出た.

 

このままいくと帰国前に3日ほど宿無し生活をする羽目になることに気づいたので急いで飛行機の予定変更した.

1日伸びた.

 

留学満了の定義が曖昧だったので, 出国の手続き(部屋の鍵返したり役所行ったり)が終わったら と言うことにした.

 

留学満了まで150日

16.09.2017

更新忘れ.

AtcoderやったりCTFやったり.

夜はちょっと開発っぽいこと

15.09.2017

朝に学校行ってからブラウンシュバイクに買い物いく予定だったけど起きたらお昼だった.

 

OSの本読んでた.

 

 

留学満了まで151日

NEW GAME!について考える

好きなアニメは何か?と聞かれたら何を思い浮かべるだろうか。

筆者は常日頃からNEW GAME!好きをアピールしているが、好きなアニメを聞かれると答えに迷う。"好きなアニメ"については今回は割愛させていただく。

ちなみに私はNEW GAME!の作者である得能正太郎先生のサインを持っている。サイン会に行ったからだ。NEW GAME!関連の雑誌は全て持っている(多分)。

 

-閑話休題-

私は、好きなアニメとしてではなく、読者に読んでもらいたい、観てもらいたい漫画(アニメ)としてNEW GAME!を挙げる。

自分が好きなものを知ってもらいたいからでしょ、と確かにそうかもしれない。

だが私は好き以上のものを、このNEW GAME!から感じている。

人生が変わると言うと過言かもしれないが、NEW GAME!が私にとってかけがえのないもので、考え方や生き方に影響を与えたのは事実である。

可愛い女の子がお仕事をするアニメ、女の子たちは間違いなく可愛い。

NEW GAME!の1ファンである私の考察めいたものを残したいと思う。

主にアニメ2期と6巻の話をする。

 

みんなの変化

話が進むにつれ、やはりキャラクターたちの心境の変化や成長を実感する。

1期を振り返りながら読むといいかもしれない。

 

滝本ひふみ

人付き合いが苦手で、会話が難しいという彼女だったが青葉の入社からだんだんと会話をするようになり所謂コミュ障を脱却しようとしている。が、まだ克服とまでは言えないようだ。

キャラ班のひふみリーダーとしてゆんにアドバイスしたり、進捗どうですか!!と進捗管理をするなど。私もひふみリーダーに管理されたい。

ひふみんかわいい。

飯島ゆん

弟と妹がおり、面倒見が良い。最高である。

PECOのキャラデザコンペでは、八神が圧倒的だろうと参加を断念し、それをわかっていてもコンペに挑戦しようとする青葉を"かっこわるいな"と思っていた。

が、コンペ後に青葉に思いを打ち明け、次からは自分も参加すると宣言。

2期の冒頭、フェアリーズストーリー3の反省で、自分は青葉やはじめのように何かやりたいこと、目指しているものがあるわけではないと答えていた。

このコンペをきっかけにゆんも自分がなりたいものを見据えたのだろう。

ゆんかわいい。

 

篠田はじめ

モーション班だが、机の数の関係から(菜月さんの陰謀の可能性も)グラフィッカー班のデスクを使用している。余談だが私と誕生日/出身地(微妙)が同じである。

アニメや戦隊モノが好きで、よくショーに行ったりするシーンが見られた。モーション作成の参考にするためでもあるのだろう。趣味が強いのは言うまでもない。

葉月から企画班でなくともいい企画が書ければ採用される可能性があると言う話を聞き、モーションだけでなく自身の想像を膨らませながら企画の仕事もするようになった。

モーションと企画の二刀流で頑張ってもらいたい。

はじめんかわいい。

 

望月紅葉と鳴海ツバメの登場

イーグルジャンプにインターンとして2人の女の子がやってくる。

青葉と同じグラフィック志望の望月紅葉と、桜ねねと同じプラグラマ志望の鳴海ツバメだ。

これまでは青葉は八神に、ねねはうみこに教わりつつ成長していくというシーンが多かったが、この2人の登場により良きライバル、切磋琢磨していく仲間ができた。 

なかなか打ち解けられなかった(ねねに関してはツバメに嫌われてた)が、紅葉は青葉のキービジュアルの話を、ねねはツバメの境遇を知り、積極的に交流し仲良くなっていく。

私も2人と同棲したい。

 

PECOのキービジュアル、そして...

私がNEW GAME!で最も印象深い部分である。

PECOのキービジュアルは元々涼風が担当することになっていたはずが、売り上げを考慮すると八神の名前で売り出した方が確実に伸びるだろうと言うことで降板させられる。ここで涼風は悔しいと言う言葉を口にし、出来レースでもいいからともう一度キービジュアルをかけてコンペをしたいと申し出る。結果はご存知の通り...。

開発はその後順調に進み、PECOのお披露目の日がやってくる。

八神はステージへ登壇しコメントを残した後アドリブで、上がっておいでと涼風を呼ぶ。

名前は表に出ていないが実はPECOのキービジュアルには涼風も携わっていたと発言。

発表は滞りなく進み、終了後に八神がフランスへ行くことを明かす。

いきなり突きつけられた現実。憧れだった八神が遠くへ行ってしまうということに呆然とする青葉。泣いた。

 

八神が青葉にステージへおいでと言ったこと、このシーンには様々な想いが込められている。

本来であれば青葉がキービジュアルを担当し、ステージに立っていたかもしれない。

コンペという形でお互いが納得いくように決着をつけたが、本当の意味で納得がいくように青葉をステージに呼んだのだろう。

そしてもう自分はイーグルジャンプにいなくなる、私がいなくても立派なキャラクターデザイナーを目指してくれ(なってくれ)、と想いを託すために。

 

八神の旅立ちとこれからのイーグルジャンプ

八神がいなくなってしまった今、遠山りんの心に空いてしまった穴を誰が埋めると言うのだろうか。答えは明白だ。私しかいない。

今すぐ芳文社に電話しよう。

14.09.2017

学校行ったけど先生いなかった.

来週から始業なので朝頑張って起きなきゃ.

 

今のところわかってるのは木曜日の8:15~, 14:15~ (90分) Informationstheorie がある.

ドイツ語で書いてるけどInformation theoryのことなのでつまり情報理論.

この講義に中で暗号理論を取り扱うらしい.

もう一つはスケジュールに変更があってまだ連絡来てないらしいので謎.

ドイツ語の講義もあるけどまだ確定ではない. 

 

ctfも相変わらずわからんねえなこれになってる.

辛くなって来たし焦燥感が異常なので何か他のことの進捗生まなきゃ

 

OSの本を読み始めた.

 

留学満了まで152日