Tips

「a34522e2009192570c840f931e4c3c0a」に回答した

2013年1月2日

我らがショタ、xrekkusu くんからの新年問題が出ていて、名指しで解いてろって言われてしまったので解きました。

問題「a34522e2009192570c840f931e4c3c0a」はこちらで確認してください。

スクリーンショット 2013-01-02 1.51.24

まずは問題の

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

ですが、どうみてもBase64なので、

base64 -D -i file -o output

で output に書き出します。

すると、先頭が「Salted__)」で始まるバイナリが出てくるので何かしらSaltを使ったハッシュか暗号データだと気づきます。もしくは塩味のポテチか何かか。

僕は

-aes-128-cbc               -aes-128-cfb               -aes-128-cfb1             
-aes-128-cfb8              -aes-128-ecb               -aes-128-ofb              
-aes-192-cbc               -aes-192-cfb               -aes-192-cfb1             
-aes-192-cfb8              -aes-192-ecb               -aes-192-ofb              
-aes-256-cbc               -aes-256-cfb               -aes-256-cfb1             
-aes-256-cfb8              -aes-256-ecb               -aes-256-ofb              

をとりあえず順番に試してみましたww

openssl enc -aes-256-cbc -d -in rekkusu-decode64

こういう感じです。

これの鍵は、タイトルの「a34522e2009192570c840f931e4c3c0a」が文字数と文字列からすぐにMD5ハッシュだと気づきますので、MD5 rainbow tableのサイト(今回は http://jp.freemd5.com/ を使いました)で、検索すると「happynewyear」だということがわかります。

スクリーンショット 2013-01-02 2.05.31

これをAESのパスワードとして入力すると復号でき

+9[1>1+7<1-1]1>1+2.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.2-2.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.1<1+9[1>1+1<1-1]1>1+6.1<1+9[1>1-1<1-1]1>1-8.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.1<1+9[1>1-2<1-1]1>1-6.1<1+9[1>1+2<1-1]1>1+4.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.1<1+9[1>1+2<1-1]1>1+3.1<1+9[1>1-2<1-1]1>1-5.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.1<1+9[1>1+4<1-1]1>1+6.1<1+9[1>1-4<1-1]1>1-8.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.1+8.1<1+9[1>1-1<1-1]1>1-1.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.2<1+9[1>1-4<1-1]1>1.1-1.1-1.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.1<1+9[1>1+4<1-1]1>1+7.1<1+9[1>1-5<1-1]1>1.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.1<1+9[1>1+4<1-1]1>1+8.1<1+9[1>1-5<1-1]1>1-1.1<1+9[1>1+1<1-1]1>1+5.1-2.1<1+9[1>1-1<1-1]1>1-3.1<1+9[1>1+4<1-1]1>1+2.1<1+9[1>1-2<1-1]1>1-4.1<1+9[1>1-1<1-1]1>1-5.1+4.1-6.1<1+9[1>1+1<1-1]1>1+5.1<1+9[1>1-2<1-1]1>1-5.1<1+9[1>1+1<1-1]1>1.1<1+9[1>1+5<1-1]1>1+8.1<1+9[1>1-5<1-1]1>1-8.1+2.1-1.1-1.1<1+9[1>1+1<1-1]1>1+5.1<1+9[1>1-2<1-1]1>1-5.1<1+9[1>1+1<1-1]1>1.1<1+9[1>1+5<1-1]1>1+8.1<1+9[1>1-5<1-1]1>1-8.1+2.1-1.1

が出力されます。

一旦、ここから先に進めなくなったのですが、記号・数字、記号・数字の順に並んでいることから、数字の分だけ記号に置き換えて展開することにしました。

これは brain fuck なので、「Javascript Brainfuck Interpreter / Debugger」(http://www.iamcal.com/misc/bf_debug/)でこのコードを実行します。
しばらく時間がかかりますが、

AOMAgQCCAOMAgQCRAOMAgQC+AOMAgQCXAOMAgQCmAOMAgQCKAOMAggCBAOMAgQCnAOMAgQCoAOMAgQCGAO8AvACBAO8AvACB

という文字列が出てきます。

スクリーンショット 2013-01-02 2.09.44

これを再度 Base64 decode します。

echo -n 'AOMAgQCXAOMAgQCmAOMAgQCKAOMAggCBAOMAgQCnAOMAgQCoAOMAgQCGAO8AvACBAO8AvACB' | base64 -D -i - | hexdump -C 

そうすると

00000000  00 e3 00 81 00 97 00 e3  00 81 00 a6 00 e3 00 81  |................|
00000010  00 8a 00 e3 00 82 00 81  00 e3 00 81 00 a7 00 e3  |................|
00000020  00 81 00 a8 00 e3 00 81  00 86 00 ef 00 bc 00 81  |................|
00000030  00 ef 00 bc 00 81                                 |......|
00000036

こういったものが出力されるので、しばらく Sn0wNight くんと悩みましたが ucq 大先生の助言により 00 がゴミだとわかりました。

スクリーンショット 2013-01-02 2.12.19

バイナリエディタの0xEDで00を削ると

00000000  e3 81 82 e3 81 91 e3 81  be e3 81 97 e3 81 a6 e3  |................|
00000010  81 8a e3 82 81 e3 81 a7  e3 81 a8 e3 81 86 ef bc  |................|
00000020  81 ef bc 81                                       |....|
00000024

になるので、これをcatすれば

「あけましておめでとう!!」

が出力されてクリアです。

Pocket

You Might Also Like