ネットエージェント新卒採用 CTF Writeup 〜前編〜

にゃんぱすー、おきなわです。

何番煎じか分かんないですけど、せっかくなので以前解いた CTF の Writeup でも書いてみようかなと思います。

題名から察しがつくかもしれませんが、今回書くのはネットエージェント株式会社の 2016 年度新卒採用で出題された問題の Writeup です。これは全ての問題を解くと最終面接から選考を始めることが出来ると言うとてもおもしろい取り組みです。

詳しくは下記のサイトを見て下さい。

さて、では早速解いていきましょう。
※ちなみに僕は Mac ユーザなのでこの記事におけるコマンドの例は全て Mac での実行例です。

mondai1

まず最初の問題です。

問題:LzYxMDIvcGouaGJwLy86cHR0aA==

もうこれは見ただけでわかりますね。そう、base64 です。末尾に == が付いてるのが特徴的ですね。というわけで Let’s デコード♪

$ echo "LzYxMDIvcGouaGJwLy86cHR0aA==" | base64 -D
/6102/pj.hbp//:ptth

どうやら逆になってるURL のようなので再度以下のようにコマンドを実行

$ echo "LzYxMDIvcGouaGJwLy86cHR0aA==" | base64 -D | rev
http://pbh.jp/2016/

上記の URL にアクセスすると zip で固められた問題がダウンロード出来ました。どうやら今度はそれを解いていくようです。

mondai2

ダウンロードしてきた zip ファイルを解凍すると次のような構成のディレクトリが出来ました。

mondai
├── hint2.txt
├── mondai2.txt
└── mondai3.zip

どうやらどんどん zip ファイルを解答していけば良いようです。では 2 問目を解いていきましょう。

2016の平方根の小数点以下2016桁目から20桁をパスワードにしました。

ガリガリ計算させれば良いじゃん!ということで僕は普段大学で matlab を使っているため、matlab で以下の m ファイルを実行させて解きました。


str = char(vpa(sqrt(2016), 2038));
str(2019:end-1)

view raw

calculate.m

hosted with ❤ by GitHub

簡単ですね。ちなみに他の解き方としては bc コマンドを使う方法もあります。bc コマンドを用いる事で複雑な数値計算も行えます。

$ echo "scale=2035;sqrt(2016)" | bc | tr -d "\n" | tr -d "\\" | cut -c 2019-
74571026133060730881

というわけで答えは 74571026133060730881 です。

mondai3

さて、3 問目です。

ハッシュパスワード問題

答え:3つの答えをつなげて

0f1aae8b8398c20f81e1c36e349a7880c9234c63

01821f5469967540a5a774197463e8c4d658f588

264f39cab871e4cfd65b3a002f7255888bb5ed97

ハッシュから元の文字列を求めないといけないようですね。本来ハッシュは不可逆なので元の文字列を求めることは出来ないのですが、インターネット上に単語とそのハッシュ値を紐付けたデータがごまんとあるので大概検索をかければヒットします。と言う訳で Google 先生の出番です。それぞれのハッシュを検索するだけ。

0f1aae8b8398c20f81e1c36e349a7880c9234c63 → tokyo
01821f5469967540a5a774197463e8c4d658f588 → ueno
264f39cab871e4cfd65b3a002f7255888bb5ed97 → line

ということで答えは tokyouenoline です。

mondai4

さて、4 問目ですが、ディレクトリ構成は次のようになっていました。

mondai4
├── hint4.txt
├── mondai4.png
└── mondai5.zip

どうやら次は画像の問題のようですね。入っていた png ファイルは以下のようなものでした。

mondai4

とりあえず画像ファイルに含まれる文字列を下記のようにコマンドを実行して見てみます。

$ strings mondai4.png

実行結果を眺めてみましたが、特にめぼしいものはなかったため、画像に書かれているヒエログリフを読む必要があるみたいですね。さっそく読んでみましょう。ただし僕はもちろん古代エジプト人では無いので日本語との対応表が無いと全く読めません。ということで以下のサイトを参考にしました。

ヒエログリフで五十音図

上記のサイトを参考に画像に書かれているヒエログリフを日本語にすると

のらかちいくち てちのちんちもちみら もにみちもにみら もにとちのにみちもちい のらもらまみ

となりました。ちょっと何言ってるのか良く分かんないですね。とりあえず2つ目の文字列である「てちのちんちもち」で Google 検索をかけた所、以下のサイトが最上位に来ました。

「かな入力」のままローマ字打ちで会話するスレ

ここでかな入力なのか?!と思い、所有している JIS 配列のキーボードを見ながらアルファベットに変換したところ、

kotaeha wakayamano minamino misakinamae komoji

答えは和歌山の南の岬 名前小文字

となりました。ここで岬の名前を検索した結果、潮岬(shionomisaki)ではないかと思ったのですが、解凍出来ず。しょうがないので和歌山の全ての岬の名前で試したりしましたがダメでした。その後も特に思いつかなかったため、ここで同じく問題を解いているらしいなーがに協力を仰ぎました。しかし二人でも特に思いつかなかったため、なーがが彼の先輩であるティマ先輩に協力を仰ぎました。そして三人で試行錯誤していた矢先、ティマ先輩がついに答えを見つけました!

答えは ushiomisaki でした。

ティマ先輩曰くとりあえず漢字の読み方を変えてみようと思って試したら上手く行ったとのことでした。圧倒的感謝🙏🙏😄😄

mondai5

5 問目です。問題ファイルは以下の様なものでした。


VjFjeFYySnRSbGhPUjJSUFlXeEZkMU5WVFhkVE1WSlVXa1pzVlZFeWFHNVRha1pLWTBWc2NsWlVR
bHBTTUVwU1ZrUkdRazVXU25GawpSVXBRVWxWS2JsTldXazlXTVVwVVZsUmtVZ3BoV0UxeVZqSndR
azlWZUZWWFYyaFRVa2RrTTFNeFZrSk9VWEJNWVZkek1sUnFRbUZVCk1WcEZWV3RhVDJGV1drdFdN
bXhIVVRGT1VtTkZOVXRXVlZwVFZqRlNhMU13ZUhOU2EwNU1DbEV4V2tOVVZWVTFWbXhvTlZKWVds
SlIKTWxKVFZFUkJOVnBzVGtkYU0wcFhUVlJzVWxkRldrTlhSa0pXVmxSc1MyVllUakpEYkZKSFZt
dDRUMUpGTldsVmExVXhXbFY0Y0ZacwpUbGtLWVd4S1MxUnNWbFpPUmxKeVpVWlNSR0Y2UW5sWFJs
WlBWR3hXY21WRmFGTldSWEJZVmxod1ZrMVdWalZUVXpsVVlUSjRTMVV4CldrTlNNVkpYVTIxV1VG
SlhZM2RYUlZweVRVVTFSQXBWYkZsTFZraHZOR0pGTlZkTlZXUk9ZV3N4Y0ZRd1VuSmlSbFpXVVZS
U1MyRXoKYUc1VWJYUmhVbXhXY2xGVGRFdFJNR3hNVmtaV1lWWnNVbkJVYTA1UFVrVXhjVlZXVWpS
VlZYQlhDbVJIWkV0Uk0yTjZWakowZGsxcwpUWGhPVms1UlVtdEdlVll6YkVwalFYQk5ZVmhvVFZk
RlduSk5iR1J3VmxSa1VHSkVVWGRWYTFKMlkwVTFSMlJHYkZCaVNHTXlWakZTCk5GbHJlRlVLWTNw
S1VXVldSWGxVVjJSM1ZHeFdWMDFEZEZWU1JVcFpWakowVmsxck5WWk9SM0JQVlRKak1GUnJUakJa
TUhod1ZtdFMKVEZKclJubERiRVY1VVdzeFZXRllaSEJXTVZaNlRteG9SZ3BTYTBaUVVURnNiMVZG
VlRCaWEyeHhVbTFXVmxKWFpIUlhSRUkwV2pCdwpWazFWUmxoU2JtTjNWVlZhUW1Nd1RuSk5SR1JN
VW14R2VWTnNXbGRhUmtaV1VXMWtURkpWUmpKV2Jtd3pDbUZXWkVkUlZ6aExWVlZPClMxWXhSbkpO
UjJ4UVZUQmFUbGRHV25OWFJrWjBVVzFLVGsxRlJYaFZWVTAwWkRCdmQxWnRSbGRoVkVaQ1ZESndO
Rk5WZERaak0xSlMKVFZaV2NsVlhiRE1LVGxac1JsSlZkRlZXUkZFd1YwWk9WazVXU2tSVldFcFRV
bXBvTTFOdWJGcGxaM0JOVW1wc1FsUldUWGhaVld4eQpUVlYwV1dWWVFsQlZSbHB2VkdzNWMwMVdT
bFZpUjAweFZrVk9id3BXTVZKd1l6TnNWVkpGUm5CVlJsa3dUbXhDTlZwR1NsZFdiV1EyClZFVmFl
bVJXWkVkVGJWSlBaRE5DVDFWRlRtRmFiRTV6Vm10b1RHSklVbXREYXpseldUSm9UbFpFVmtSVldI
QktDbVJXUmxaTlZYQlMKWWtoa2IxTlhkRE5OYkVKd1lYcEtVVlpzYkRaVE1uUk9ZekI0Y1U1SVJs
RmhiRXBVVTFaV2QxWnNRbkJQVjA1WVZrZDBjVlpFUW1GYQpWWGhIVGtkMFZXRlhUVEVLVVRKemVG
VnNaRlpTV0ZGTFZIcENUMXBHUm5KVGJVWldZa2hvYkZOWWF6VlZNREZYWkhrNVRrMVhaREJXCk0z
QjJUbFU1VkZWc1FsbGlSVnBWVm01d1ZtRnJOSGhPUkU1TFlXcFdVUXBWTTJ4R1pGWldjR1ZHVmxC
V1ZVcEtWRzEwYjFKR2JFZFAKU0U1UlVsaFNURlJFUWpOVGQzQlZWVEJhV1ZSRlRsWmhNV1J4VlZS
S1ZVMUdjRk5WTUZrMVdXeENjVlZzU2xGTlJ6bHlDbFZYYXpCagpNVnB3WWtWS1dVMVdXa1pXYTFw
dlZrVjBjMU5ZV2xkbGJVNTVWMGQwUmsxRmVFWmxSMHBRVWtaS1NWUkdWakJYUmtKRVlqSjBUbEp0
Ck9EUkRiRlpGVVd4S1VHUXpRazhLVmtaYU5Ga3dNWEJVVjNCWVZsYzVlRlZFUVhkaFZrWnhZM3BL
VTAxVldrOVZNVlp5WkRGS1YxTlUKYUZGbGJFWnhWMGQzTVZKR1FrZFBTRkpZVWtSc2JWWkdXbGRV
VmxwR1lYcG9XQXBOVlZwS1ZtMXNWMUpXUmpaWmVsVkxWMFpWTkV3dwplRFppUm14WlpWWktiVkV5
YzNkaWEzUlhWbXRhVDAxWFRYbFdla1UwWTJ4QmVFNUlWbFZpUm5CV1YwVlZNVlJHU1hkUFYxcFJD
bUpGClZqSlVSbFY0VjFaYVJsTlRkRTVSTTFKdFZGUkNTa3d3ZEVSUFJFWk1WbXN4ZUZSWWJEQlZk
M0JYWVdzMVlWZEdWVEZUTVZaeVVsYzUKVDFKWVRuVldNVlpHVXpGU1YxVnJSbGNLVlROU1QxWXpj
SGRWVmxsNFRrZDBUMDFYVFRWV01uaE9UMVV3ZUdORk9WbGhhbXhSVm01dgpkMk14U2tSbFJXaFVa
VzVvVUZOcldqUldSbVJXV2tkV1ZGSkhhR3BEYXpGVlVtMVdWUXBSTW5oVlZXcENNRnBGT1Vaa1JY
QkxaVmQ0ClRWVldVWGRrVmtwU1kwVTFWVkp0Y3pCVk1WcGhVa1pTUlU1SVdreE5TRUpSVmtkc2Qx
TkdSbFZYYkU1VFlYcHNZVlZXVlRSTU1VRjQKQ2xac1NsbE5SRUoyVlROck5WTkZOVWROUkZWTFUz
cEdORkpzVmpaUmJHUlNUVlV3TVZaRVJtRmFhemgzWTNwa1ZWVXhjRU5WYlhoTwpaRlpDTm1SNlVr
Umhla0o0VlRGYVlWa3dlRFlLWlVaa1NsWlhhRmxXYWtKUFYwVjRjMDFIYUU5V1JteDVVMjVyZUZK
c1JuQmlNMHBYClVteEdNbFF3VlRGYVozQlpUVlJvZFZOdGJEQlhWWGQzVDBoS1ZXVlhUakpVVkVV
MFpFWm9WQXBqUms1WllrWndTMWRIZEhwUFZUazIKV2pOU1VXRldWa3hXUmsxNFZqRkNWMW96UWxk
U2JVNDFVekozTVZVeFdrZFBWbWhPVWxka01sVkdWbk5TUm1kNFYxTjBWbVZVUmxORAphelZ6Q2xr
elNsWmlSR2d3VkVWV05GZHJjM2RPUjJ4WFRVZFNURlpZYkZkYWJHUlhZMFZXVVZaSVRURlZNMnMw
U3pGYVZtSkZOVmhOClZrcFJWVWhrZDFScmNFWmhSazVRWWtoa2NGUlhlRk1LVlVaYVJtTjZRbFZT
YkVZd1ZFWlJkMDVHU2xSalJtOUxWa2R3VW1Oc1RsWloKTTA1TVlUTkNSMVl4Vm5wT01VcHlWMWhh
VEUxVVVuRlVSVnBhWVd4R1ZsUlVaRmxoV0UxNVZsVmFRd3BhUm1RMlRVTjBURlY2YUhwVwpla0pD
VFRCT2NrMVZaRmhpUmxWMlUydFdWMUpHVmtWUmJHaFNaVmRTVVZWVldsTlNkM0JMWWtaV05WWkdU
VFJpTVU1R1drZEtWRlpICk9ESlhSMjh3Q21SRk9VUmhNMUpSWVZkek0xUnRkSFpsYkVwWFkwVmtW
V0V5VG5GVGVrWlBXVlphVlU5WFZsSmhNR3g2VmxkcmVGZHIKTUhoWFZYUlZWa2RTVUZWdWJ6Uk9i
RWwzVTFkc1ZHVnJNRE1LUTJ4R1ZFOURkRmxOVm14MFZHdGFVMVpHU2paYVJXUlJUVlJzU0ZWVwpV
bnBqTUd3MlZteHdUVTFHV20xVVJVNVdZakE1Y0U1V1JrMVNWMmhHVkVaYVUxUXdkM2hTYkZaV1lW
UkJOQXBXYm1zd1QxVTFSMDlJCmFGWmtNMEpQVmpGV1UxVkdVa1ZhTTFsTFZsZDRXazVGT1RWaU0y
aFpWVEprTmxWNlJsTlZhekUyWkRKNFdWSkVSbWhWVjNOM1RtdDAKY21SRlVsTmxWbkJaQ2xRemJG
WlBSbVExVmxkd1VGSlhZelZWVjNCelZVVnNWV1I1T1ZGU2JtaFZVekZWTlZKc1RsZE9WMXBMVVhw
VwpVbEV5YzNoVmQzQlFZVEZ3V1ZaclVucE9Sa3B3VGxWMFZsSlZXbW9LVmpKd1Exa3hTbkJTVkd4
WlVrVndWVlZYY0hOVFZXdDNWbXh3CldGSnFWbEpVTTNCTFZGWk9WMWt6V2xWaGFteElWa1ZPVTFN
eFRuTlRXRkpVWlZSc2ExWXllRmRYVlRSM1lrWnNWd3BoYTFwcVEydHcKUjFrd2RGVldSR2h5VlVa
T01GcHJjRlZoUm1SVVRWWnJNbFZzVlRGV01XUkVXa2RXVkZKdGRIVlRWazVQVkd4Q1ZGTlhlRlZX
YWxaRQpWRVpPVTFJeFpIRmxSa1pUQ21FeU9EVlZWM2g2WXpGVmVFNVZiRmxTYWtaSlZVZDNNVlJG
YTNkUmJWbExWak5zYmsweFpGWlhXRXBUClpETkNUMVp0ZEhkYWJFSTFUMVZ3VUdWdFRuSldWM1F3
VjFaa05XTXlkRTBLWVZkU1dGZEhhM2hWYkZKWFYxZDBVRkp0T0hoVVJsSnEKVFVaV1IwMUlSbGRX
YlhNMFZFZHJkMk14Vmtka2VrcFZWbTVOZVZVeWRISmhkM0JRVW14R2QxWnRkM2hYYXpsWVVXdFNX
UXBXUkVKMwpVVEp6ZDJGR1RuSmhlVGxZVlRCck1WVXdVa2RYYkU1SFZHeHdVVlpyYkRGVVNIQnFU
V3hLYzFwNWRFcGlSRVpTVjBaYVFtTnNUWGRUClZHaFJVbFpyZUZSclVrSk9WWFJWQ2xGck9WRmhN
amg2UTJ4R1ZWZFlXbFpoZWtFelZsVlNkbUZHVGxkU2JIQlVZVEpTVlZReFVuSlQKTVZKVVdUSXhX
RTFGTUhsVE1VNXJWbXhDUjJONU9VeFdWVEF5VTFoc2ExWkZOVVlLWTBaS1VHRXdXbFZVU0hCdlV6
Rk9jVlJzY0ZWVwpibWhaVkZkemVGUXdPVFpOUjNkTFZVVldXazVzYUZaa2VrSlpWbXRHZUZWVVFU
QmtSWGQzWlVWS1ZXSkhlR3hWVkVacVRVWk9iZ3BqClJUVk1ZVE5DVDFWNlFqQlZiRlpYVDFad1Qx
WllhR3RYUjNCNlkxVXhWMU50V2xaaGF6RTJWV3RXTTJGcmNISmllWFJRWVZkU1RWTXoKY0c5YVVY
Qk1Va1JzUTFVeFRqQlhSVFZ3Q2sxRVZsaFNNRVUxVjBkc1VrMVdTa1ZoZWtKVlpWVTFWVll4Vmtw
bFZrcFhWRzFPUkdGNgpSbFJVYkZKRFZEQTVjbHBIVGxGV2EzQnBWa2QwVm1SR1duSk9SRXBVWVZS
b2RsVXhVazhLVmtWME5XUXpiRTloVjFKdFEyeFdWMkpIClNrMVNWbkJQVldwQ1IxVXdNWEJpUjFK
UVZrVlZNMVZVUlhka01VcHlWbXhLV0ZaSGRESlRWM0J6VmtaVmQxTlhkRkZTYWtKTVZrWlYKZUFw
VFJtUlhXa1ZLVkZKRlZUVlRiRll3Vkd0d1IxZFlSazFOUlVWM1ZFZHNVMUpXVmpaT1YwMUxWRVpW
TkdOc1dsVk9WVXBZWld0RgpjbFp1Y0hOVmJHaFhVMWhXVlUxV1dreFZWbG96Q21SVmNITlVhemxa
WVc1a05WWXhVVFJrVmtweFdrWktWMlZXYTNoVlJrWjNWR3R2CmVGSnJhRlZXVjNNeVZsZHNlazFz
YURWT1ZWSlBWbTFPY0ZacldtcE1kM0JLWlc1Tk5WWlljRFFLVjBaU2NGZFlRazVsYTFwdFZsZHMK
TUZGcmJIQmpSWEJXVFZjNWVWUlVRbUZUYkdSWFQxWldUVkp1WkhoV01WWnpWMFpLVlZreU1WaFNS
bkJKVjBkc1IxZEZUbkpOVlhSVApWa2hTVEFwVWExSXdVVEJyZDFkdFVrMVZNVXBoUTJ4V1JrNVZh
RTFoTTJONFUxZHdhbVJzVW5KamVsWlFZVzVDYkZNemJFOVViRlp6CllrVjBVMkY2VmxwVVNIQktU
VlpTTldFelVsbFNWbXQ2Q2xSR1dtcGhWazVXVW0xYVQwMVVhREZWTW5oWFYwVTVjVTVGZEZWVk1t
UnkKVjBSQ1RrNUdUbkpOVlhOTFYwVmFORlJyZERWV1ZHUlZWbTFTVTFNeFdtNU5Sa0p4VGxWU1Ux
SklUbmtLVkVkc2IxcEZOVVZUYldSTgpWbXRzTVZSWWF6UmtNSGh5VGtSU1UxWkdSbk5VYlhSdlYx
Wk9SVkZYTVZOV1ZVWjJWVVZXTTJKR1pGVlViV1JXV2pOQ1IxUlhiRTVoClVYQk1VbGhvU0FwV2JG
bDRVMFprVkZKc2JGSlNSVlowVlVaT1QxVkZiRlpYVkZaUVVYcFdTbFF3VWxwa01IUkVVbFJzVEdF
d1drMVQKTWpGRFVUQnNjbEZYYkZGV1JHeFZWREJWZUZWV2JFVlZiV1JhQ2xJd1NtNVhWVVozV2pC
T2RGWnVWbUZSVnpnNVEyYzlQUW89Cg==

view raw

mondai5

hosted with ❤ by GitHub

どうやらまた base64 のようです。なのでとりあえず一度デコードしてみたところ、また base64 がでてきました。そこで何度か base64 でエンコードされてるのか?!と思い、以下の様なスクリプトを書いて実行させてみました。


#!/bin/sh
cp mondai5 mondai5_2
for i in `jot 20 1`
do
base64 -D mondai5_2 > mondai5_tmp 2>/dev/null
if [ $? -ne 0 ]
then
rm mondai5_tmp
break
else
cp mondai5_tmp mondai5_2
fi
done

view raw

dec_base64.sh

hosted with ❤ by GitHub

上記のスクリプトを動かすと mondai5_2 という以下のファイルを生成します。


begin 644 –
M'XL(`'R)"E4“POP9F;A8@`!SVE%;B+>Z0=-6!D80)@9*):7FNT4E6%IZ!BI
M%AQY7J.QB(%A0OU_!/@'Q/O_HX+W_P\PW=E='+/LUK43[DN^.%R^4I5E8NLS
M+]CMRLGE2VS55S"?JIIIPFMR^8H4\Y44$UO?%5]F23"89%Q@8&L`6FER@>$"
MFUN#B43#A<P%[`$,7ZJ6K^R<P+[").,K\Y6Z%;:^4D:)4[X:\:Y<[-;6?$62
MQ]>L0WZE65N#5(84+\.%C(P+C`LN,"YK:\A@8&!<N'"1^PH&_L`%M@X\4@P,
M;(T+%U]A@`(@/W,"XP(@"VBM"9!L]YWB`[3@5@/0'EZV-@:<H+;-CU$B,9`A
M>8]%9D$+D_0'&3,_@1-Z"MJ_*N=XM:]QNW9L(VN+2L0"=^:?'QUX3,[.XR]7
M<&_JUG*[]:W!1>BC2.AMIB\!"L6>)6=V3*C,.>*>4R!JU>/\Y9#OF^,^$N'9
MQYA-;C]BBZR\^#/R1\?3X-[:99$O^QSW5#7^7&>OK!.R,T9@H6HC`_,<KJ/L
M!W,%$Z46OFQH_[>4Q?J$B.,V)A_UDTXS*R/W7+^A4,L[84G-KW<*$0Z<P0Q;
MM\\2##YJ*?M"B;6GQMII0ER<?4#^^C<_-X?_MULTI<[QHV%DC79]O?/9X_$_
M')UE7W6[_+?^.NVT\NKGO_>Q/-MXTB>0+_3B?(/5)S*3+RV3Y]NJRA(4K'YA
MT@U+M[:PW^$7W=ZS=3ZN^?OW=,D,GK<N$\SYG^H8\11^L)SGK]8KI')KA=.E
MLY8IVCL>/+JON*GA6RFOYAO??UQ_M(K/G4]9+\ES0VCS9OV_;K;M&AFS.?<8
M*IV\/<V!HWWCW.]!56+'-EB*+TT/8N___'&+X/O+O'/3_-]*R^VI^K=;8->%
M-V=X)TW2*^RT_W0H/=IC_V>S-Q6W+R_-,LY+N"WGJS%_YZD=;9K/>UIM[TO?
M$HR:\"2TOTK4LT–=8E*YN4+IG,*JEYK;FF/+^#,V#AC;^+6PP][=>)/,[@7
MFZU?$ECP0WC'O@TF&U2M/(HG[I::^>-8)->);6J3EZFNG#+SZU?^BB,R-Y3V
M7NG?:GB"K3;A/>_V&4TSG7F?_FA;,#5Y/E_,%(:.P,HD-TN/QTR-<W.=4_1S
MYDOL8/RV8;*1](3KTQ3<%\=ZBM:*KCG&W;%<[%#8H=B9O!<?<\S)OEI^_$.P
MR:FWT;8F.JPA\Z0\F!=\2SB9H#EYX^P;2LIW/N?FL$JJR-K/]ZUX7IXV1\$W
M?$=+_%8VKV:ENVX'^HY'!#M="%M^B-$FZ<PFJ=B[,S^H\]G>^K#@_[(7YF+G
MVJ_?/I;7$RKX[+$.'V^-QMV$8Z5-74P]*UY<.-,P\6M[6JI$8T)V]Y9`C]=)
M!JI?Y"9H1YHSY=R./76FX>"]P]P+KB<<F5409)0N>J7A6/RM;P:!IQYJGS99
M'&[C6)'U<[?)C:#'S4JQ:AS/8JJ3YM\W2MN;=%<F:]L4]P*CN-/LANY^CW4J
M*JMKKQQ_Y5L]^;*1R_R33DL#&J>:'K+8^(?AI+W6-9X`=^$5D94O#SYB2ES\
MR50N:G\=R[NE-VN6J/(I3S+,26'_QY[,FMGAR2)]91;C]0FEQY9/"9SSB$<]
MMGYWAH1=%KM$V*/@4.$DS>\-O+U>A[0>W9Q]R.OUJA\.&SN^<2Y?.F7QW&5=
M'QGMI:R+6_.C5W"TW?#;=S<WN&)31_R+A"*ISZ+3FIY_T,\*YIWE7&X6G^!W
MJE;J4;B#F]-$YPNG.L5"7/NK9::^+#MRYJFNX/25O)-\F7-W"IA_7_.JUW:>
M($_C8JMJ\\M+%;MWQ)X4>>CD;+.(]42`-R.3/0.N8E4%6HXH0&E@(<L%Y3`R
E2#"(LFU]GY!X@1&=#O!F98.H860(!=*AK*`B"@"=?S8MP`4““`
`
end

view raw

mondai5_2

hosted with ❤ by GitHub

begin で始まり end で終わっているあたりから uuencode でエンコードされたファイルだと分かったので以下のようにデコードします。

$ uudecode -o mondai5_3 mondai5_2

そして得られたファイルについて、どんなファイルなのか file コマンドを用いて調べます。

$ file mondai5_3
mondai5_3: gzip compressed data, from Unix, last modified: Thu Mar 19 17:31:56 2015

どうやら gzip ファイルのようなので素直に解凍。

$ gzip -dc mondai5_3 > mondai5_4

作成したファイルに対して再度 file コマンドを実行。

$ file mondai5_4
mondai5_4: Zip archive data, at least v1.0 to extract

zip ファイルなので再度解凍。

$ unzip mondai5_4
Archive: mondai5_4
extracting: nek 

再度 file コマンドを実行。

$ file nek
nek: bzip2 compressed data, block size = 900k

またまた解凍。

$ bzip2 -dc nek > mondai5_5

またまた file コマンドを実行。

$ file mondai5_5
mondai5_5: 7-zip archive data, version 0.3

解凍して出てきたファイルに対して file コマンド(ry

$ file n
n: RAR archive data, v1d, os: Win32

解凍して出てきたファイルに対し(ry

$ file ne
ne: LHarc 1.x/ARX archive data [lh0]

解凍して(ry

$ file nex
nex: xz compressed data

解(ry

$ file nex-1
nex-1: data

やっと圧縮ファイル以外が出てきたのでとりあえずバイナリを vim で眺めてみます。

$ vim -b nex-1

ファイルの最初に MSWIM と書いていたのでその単語でググった結果、どうやら Windows Imaging Format ではないかと分かりました。7-Zip で解凍出来るようなので解答して得られたファイルに対して file コマン(ry

$ file QRcode
QRcode: Sun raster image data, 123 x 123, 8-bit, RGB colormap

そのままだと表示出来なかったのでとりあえず jpeg ファイルに変換。

$ convert QRcode QRcode.jpg

以下がそのファイルです。

QRcode

どうやら名前の通り QR コードなので適当に携帯のアプリで読み込んだところ

+BCcENQQxBEMEQAQwBEgEOgQw-

という文字列が出てきました。調べた所、UTF7 でエンコードされた文字だということがわかったため、以下のサイトを使ってデコードしました。

Encode/Decode_Tool

デコードした結果 Чебурашка でした。ドイツ語でチェブラーシカという意味だそうです。これがそのまま答えでした。

 

 

とりあえず疲れたので今回はここまでです。mondai6 以降は次の機会に。

ではでは〜

コメントを残す

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください