こんにちは。
最近、初対面の人にnagatechを「ながてっく」って読まれることに悩んでいるながてちです。
2019年4月17日(水)に行われたtraPの一大新歓イベントであるtraP CPCTFに参加したのでその参加記とWrite up的なものです。
他の人のWrite up(解き方の解説)もいろいろ上がっているのですが、あまり新入生向けの解説がなかったので解いた問題全部についてなにかしらコメントをしていこうと思います。
先に結果だけ言っておくと、全体13位でした。
全体13位でした!
普段CTFも競プロもやってない勢としては健闘したと思います
おつかれさまでした#CPCTF pic.twitter.com/Oda6504GWU— nagatech (@_nagatech) 2019年4月17日
今年のCPCTFはtraP外や学外からもとても参加者が多く、大盛況でした。
AtCoder(競プロ)のchokudaiさんもCPCTFについてツイートしていたのがびっくりでした。
東工大の競プロとCTFが混ざったコンテストの順位表見てるんだけど、開いてるとなんか色々爆発してうるさいwhttps://t.co/oin7bCZmJ2
— chokudai(高橋 直大)🍆🍡 (@chokudai) 2019年4月17日
問題はこの記事を書いている現在はまだ公開されているので、興味がある人はチャレンジしてみてください。
目次
- 参加記
- 13:10 オンサイト会場到着
- 13:00 スタート
- 13:33 [Web] Password: C1 (100点)
- 13:37 [OSINT] easyTwitter (100点)
- 13:39 [Web] You are Postman!! (100点)
- 13:41 [Web] ! (100点)
- 13:45 [Shell] veeeeeeery_long _text (100点)
- 13:47 [Shell] Hidden (100点)
- 13:50 [Shell] cat (100点)
- 14:01 [OSINT] Sugoi Yabai Image (180点)
- 14:03 [Shell] nc (100点)
- 14:06 [Forensics] Black (100点)
- 14:15 [Forensics] deleted flag (200点)
- 14:16 [Misc] Undo (300点)
- 14:34 [Misc] readable (100点)
- 14:51 matoryo (200点)
- 15:01 [Misc] equal (100点)
- 15:20 [Web] Flag Post Service (100点)
- 15:23 Password: S1 (300点)
- 15:26 [Web] Password: C2 (200点)
- 15:30 [Web] Password: C3 (200点)
- 15:33 [Web] Password: S2 (300点)
- 15:53 [Forensics] Unzip 2nd (200点)
- 16:09 [PPC] apulsb (100点)
- 16:12 [PPC] aplusbtimesc (100点)
- 16:14 [Binary] easybinary (100点)
- 16:18 EasyRSA (100点)
- 16:40 [Forensics] trapyojo (100点)
- 16:46 trapyojo2 (200点)
- 16:52 [PPC] 3F (200点)
- 17:43 [Web] Password: C5 (400点)
- 18:01 [Shell] command_not_found (200点)
- 18:39 [Misc] kakezan (300点)
- 18:51 [Forensics] #traP1yakudo (200点)
- 19:11 [Forensics] Listen my music! (200点)
- 19:23 [Forensics] unzip1st (90点)
- 19:30 競技終了
- 反省
- おしまい
参加記
前日は楽しみすぎてまったく寝られない遠足前の小学生みたいなことをしていました。
頑張って午前5時くらいには寝たかも。
13:10 オンサイト会場到着
おいす〜 #CPCTF pic.twitter.com/WBeqEBbHMm
— nagatech (@_nagatech) 2019年4月17日
めちゃくちゃ人がいました。びっくり。
パソコンのセッティングしたり、運営側のtraP部員と話してたりしました。
13:00 スタート
スタートです! #CPCTF
— nagatech (@_nagatech) 2019年4月17日
今年も問題数が多い。
とりあえず目についた簡単そうな問題を解くことにしました。
13:33 [Web] Password: C1 (100点)
ソースコードを読むと、
if(inp.value === "p45sW0rD"){
alert("Nice! " + decrypt(inp.value));
}else{
alert("Wrong password ...");
}
となっているので、p45sW0rD
を入力します。
FLAG_100{you_must_not_include_password_into_js}
13:37 [OSINT] easyTwitter (100点)
FLAG_100{FourmiSushiが2018/11/28に訪れていたお店の電話番号}
とあるので、TwitterでFourmiSushiくんの行動をネトストします。
ピンポイントで日付指定するとたまにツイートが全部取得できないことがあるので、前後の日にちをTwitterの検索欄に入力します。
from:FourmiSushi since:2018-11-27 until:2018-11-29
— 紙魚寿司 (@FourmiSushi) 2018年11月28日
はま寿司が運搬されている pic.twitter.com/xLPBLJcIND
— 紙魚寿司 (@FourmiSushi) 2018年11月28日
どうやら多摩川駅付近にあるはま寿司に行っていたようです。
「はま寿司 多摩川」でググると、はま寿司田園調布店が出てきます。
FLAG_100{03-5483-0063}
しみすしのヒミツ
easyTwitterをみた参加者がきまぐれでたくさんフォローしてくれると思っていたらしい…— 紙魚寿司 (@FourmiSushi) 2019年4月17日
これすき
13:39 [Web] You are Postman!! (100点)
http://you_are_postman.problem.cpctf.space/
にPOSTするとFLAGがもらえます。
curl
というツールを使いました。
$ curl -X POST http://you_are_postman.problem.cpctf.space/
FLAG_100{h77p_h45_53v3n_m37h0d5}
13:41 [Web] ! (100点)
実はこれを最初に解こうとしたんですけど、Descriptionがなくてバグかな??ってなってました(仕様です)
問題文の!
からコメント文であることをエスパーして、サイトのソースコード見たらDescriptionのところにFLAGがコメントアウトされてました。
<!-- FLAG_100{F14g_15_H1de_4nd_W1n} -->
13:45 [Shell] veeeeeeery_long _text (100点)
UNIXコマンド問題。
問題文からめちゃくちゃ長いテキストファイルであるっぽいので、grepコマンドで検索しました。
$ cat qwerty | grep FLAG
FLAG_100{50m3t1m35_u53ful_p1p3}
13:47 [Shell] Hidden (100点)
これもUNIXコマンドの知識問題。
$ ls -a
するとフラグが隠されたファイルが存在することがわかります。
FLAG_100{d07f1l35_4r3_h1dd3n_f1l35}
13:50 [Shell] cat (100点)
これも(略
そのままではファイル名の先頭にハイフンがあって読めないので、--
をつけてオプションを指定しないことを明示します。(ググった)
$ cat -- -flag-.txt
FLAG_100{Fi1e5_c0n74ining_hyphen5_4re_ug1y}
14:01 [OSINT] Sugoi Yabai Image (180点)
僕のtwitterに超すごいやばい秘蔵画像.pngを公開しました。
ぜひご覧ください!
ヒント無しだと糸口がつかめなかったので、ヒントを1つあけました。
大ヒントですよ。
2019年4月16日の4:28:27にツイートしました!
そんなツイート無いけど〜って思ったんですけど、外部にツイートが保存されている可能性を考えて、ついろぐというサービスで探すと、その日時のツイートが見つかりました。
FLAG_200{I_tw33t_5uper_Hyper_U1tra_Tre45ured_Im4ges}
14:03 [Shell] nc (100点)
問題文の指示に従うだけ(チュートリアル問題みたいなもの)
{FLAG_100{nc_test}
14:06 [Forensics] Black (100点)
問題として真っ黒な画像が与えられます。
塗りつぶすとフラグが見つかります。
FLAG_100{C@n_y0u_find_me?}
14:15 [Forensics] deleted flag (200点)
FLAGが入ったファイルを消してしまったようですが、gitで管理しているので巻き戻すことができます。
しかしgit log
コマンドでコミットログだけ見てもそれっぽいファイルが存在しないので、HEADの動きを記録したgit reflog
コマンドを見て、怪しい動きをしている部分にgit checkout
します。
FLAG_200{1_und3r5t00d_g1t_c0mpl373ly}
私の問題、ながてちさんのツイートをヒントに作ったので最初にながてちさんが解いたのを見てやっぱりか~となった
— xecua[数値計算0514/SecCamp05271600] (@xecual) 2019年4月17日
これほんとお?
14:16 [Misc] Undo (300点)
FLAGが書かれてるっぽいテキストを開いても何も表示されませんが、.vimrc
が存在してるのと問題文を読んだ感じ、vimのundoを使うと出てきそうです。
$ vim flag.txt
で開いて、u
を連打することでFLAGが出てきます。
FLAG_300{vim_can_save_history!}
300点…300点…?
14:34 [Misc] readable (100点)
暗号解読系の問題
fl46_100{y0u_c4n_r34d_
sᴉɥʇ ̄ǝsnɐɔǝq ̄ɓɐƮɟ ̄sᴉɥʇ
_vf_na_rnfl_pelcgbtencul}
フラッグはアルファベットとアンダーバーのみから構成されます。
1行目は4
がa
であることがわかるのでそこから推測。
2行目は逆にするだけ。
3行目はそれまでの文からvf
がis
なのを推測してそこから文字をずらす方針で後の文字列を割り出しました
ちなみに3行目の暗号はrot13
というらしいです。
FLAG_100{you_can_read_this_flag_because_this_is_an_easy_cryptography}
14:51 matoryo (200点)
1989.zipを解凍すると1988.zipが出てきます。
1988.zipを解凍すると1987.zipが出てきます。
…。
手動でやってたら埒が明かないのでシェルスクリプトで自動化しました。
for i in `seq 1988` ; do
unzip -P traP_cpctf "$((1989-i)).zip"
done
FLAG_200{m47ry05hk4_15_n1ckn4m3_0f_m47ry0n4}
15:01 [Misc] equal (100点)
RkxBR18xMDB7dGghc18xc19iQHNlNjQhfQ==
暗号文の後ろに==
がついていて特徴的だったので、base64
で復号しました。
FLAG_100{th!s_1s_b@se64!}
15:20 [Web] Flag Post Service (100点)
指定したURLにFLAGを届けてくれるようです。
POSTを受けとれるサービスを使ってFLAGを受け取りましょう。
Beeceptor - Rest/SOAP API Mocking, HTTP Debugger & Proxy - API Mock Server
FLAG_100{fl46_p057_53rv1c3}
15:23 Password: S1 (300点)
if(strcmp($_REQUEST[“pass”], $password) == 0){
echo(“Nice! {$password}”);
}
ソースコードを読むと、phpのstrcmp
で比較しているようです。
「strcmp 脆弱性」でググると、以下のサイトが出てきました。
これのstrcmp
の項に、リクエストの後ろに[]
をつけると配列になって例外が発生し、値がNULL
になって、PHPではNULL == 0
はtrue
になるので、攻撃が成功する的なことが書かれていたので、
開発者ツールでpass
をpass[]
に書き換えた上で文字列を送るとFLAGが降ってきました。
FLAG_300{false_equals_zero}
15:26 [Web] Password: C2 (200点)
パスワードはthis_is_super_secure_password
と分かっているのですが、フォームに全部入力できません。
ブラウザの開発者ツールでformタグのオプションのmaxlength="10"
を除くことで全部入力することができます。
FLAG_200{maxlength_is_no_meaning}
15:30 [Web] Password: C3 (200点)
if($_SERVER[“QUERY_STRING”] === “pw”){
exit(“***** CENSORED *****”);
}
がどう見ても怪しいです。
urlの後ろに?pw
をつけて実行するとFLAGが降ってきました。
FLAG_200{inspecting_network_communication}
15:33 [Web] Password: S2 (300点)
$cnt = $db->query(“SELECT COUNT(*) FROM User WHERE Password = ‘{$_REQUEST[“pass”]}'”)->fetchColumn();
SQLインジェクションができそうです。
1' OR '1' = '1
を入力することでFLAGが降ってきます。
FLAG_300{sql_injection_is_fun}
15:53 [Forensics] Unzip 2nd (200点)
$ zipinfo flag2nd.zip
を実行すると、zipファイルの中身にEiichi_Shibusawa.jpg
という明らかにどこかから拾ってきたであろう画像名が表示されて、検索してみると実際にWikipediaに画像が存在していることがわかります。
説明は省きますが、既知平文攻撃という手法を用いて突破することができそうです。
pkcrack
というツールを使うと簡単に解析ができます。
$ pkcrack -c Eiichi_Shibusawa.jpg -p Eiichi_Shibusawa.jpg
-C flag2nd.zip -P eiichi.zip -d flag.zip
FLAG_200{Shibusawa_Eiichi's_face_is_worth_10,000_yen}
16:09 [PPC] apulsb (100点)
競プロのチュートリアル問題。
問題文に回答のソースコードがあったのでコピペしました()
n = int(input())
for i in range(n):
a,b = map(int, input().split())
print(a+b)
16:12 [PPC] aplusbtimesc (100点)
上のソースコードに手を加えるだけ
n = int(input())
for i in range(n):
a,b,c = map(int, input().split())
print(a+b*c)
FLAG_100{mult_add_mult_add_mult_add}
16:14 [Binary] easybinary (100点)
strings
コマンドを使ってファイルから文字列を抜き出すとFLAGが見つかります。
FLAG_100{5trings_c0mannd_is_c0nven1ent!}
16:18 EasyRSA (100点)
n=29
e=13
c=238
FLAGの形式はFLAG_100{復号化された数字を十進数で}とする。
頑張ってRSAを手計算するか、Webに転がってるRSA解読ツールを使うことで計算できます。
FLAG_100{82}
この後くらいからいろいろな問題に手を出しては挫折して他の問題にチャレンジするという感じになっていきました。
16:40 [Forensics] trapyojo (100点)
たぶんpdfファイルのどこかに文字列が隠されてるんだろうなというのをエスパーして、Webに転がってる文字抽出サービスを使うとFLAGが出てきました。
FLAG_100{h3n741_7h1n6s_n0t_g00d}
16:46 trapyojo2 (200点)
一見ただのpngファイル。
strings
してみると最後にflag.txt
なる文字列が。
もしかしてと思ってオンラインバイナリエディタで開いてみると…
pngの後ろにzipくっついてんじゃ〜んとなるので(PK
はzipのシグネチャ)
青色の部分だけをflag.zip
として保存して解凍してあげるとFLAGが手に入ります。
FLAG_200{z!p_1n_7h3_1m463}
16:52 [PPC] 3F (200点)
普段はRuby使いなのですが、競プロにおいてRubyは速度が遅すぎて向いてないと聞いたのでPythonで書きました。(もっといい書き方あると思うけど通れば勝ちなので…)
x = str(input())
y = str(input())
if x[0] == 'B':
tmpx = int(x[1]) * -1
else:
tmpx = int(x[0]) - 1
if y[0] == 'B':
tmpy = int(y[1]) * -1
else:
tmpy = int(y[0]) - 1
print(tmpx - tmpy)
17:43 [Web] Password: C5 (400点)
唯一時間内に解けた400点問題。
scriptタグで囲ってあるのに実行できていることからJavaScriptを難読化していることがわかり、ググると「(」・ω・)」うー!(/・ω・)/にゃー!encode」というサイトがみつかります。
じゃあ「(」・ω・)」うー!(/・ω・)/にゃー!decode」は無いのか〜〜〜といろいろググっていたら、以下の記事を見つけました。
ksnctf write up ~ 3 Crawling Chaos ~ #CTF - Qiita
難読化されたコードの復元方法は色々あるらしいが、
簡単なものはconsole.log()に入れてあげるだけで復元されるらしい
ためしに
console.log((ᒧᆞωᆞ)=(/ᆞωᆞ/),(ᒧᆞωᆞ).ᒧうー=-!!(/ᆞωᆞ/).にゃー,(〳ᆞωᆞ)=(ᒧᆞωᆞ),(〳ᆞωᆞ).〳にゃー=- -!(ᒧᆞωᆞ).ᒧうー,(ᒧᆞωᆞ).ᒧうーー=(〳ᆞωᆞ).〳にゃー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーー=(ᒧᆞωᆞ).ᒧうーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーー=(〳ᆞωᆞ).〳にゃーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーー=(ᒧᆞωᆞ).ᒧうーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーーー=(〳ᆞωᆞ).〳にゃーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧうーーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーーー=(〳ᆞωᆞ).〳にゃーーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧうーーー- -(〳ᆞωᆞ).〳にゃー,ー='',(ᒧᆞωᆞ).ᒧうーーー=!(ᒧᆞωᆞ).ᒧうー+ー,(〳ᆞωᆞ).〳にゃーーー=!(〳ᆞωᆞ).〳にゃー+ー,(ᒧᆞωᆞ).ᒧうーーー={這いよれ:!(〳ᆞωᆞ).〳にゃー}+ー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧニャル子さん+ー,(ᆞωᆞᒪ)=(コᆞωᆞ)=(ᒧᆞωᆞ).ᒧうー,(ᒧᆞωᆞ).ᒧうーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(ᒧᆞωᆞ).ᒧうーー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃーー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)- -(ᒧᆞωᆞ).ᒧうーー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃーー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃーー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーー[(ᆞωᆞᒪ)-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(〳ᆞωᆞ).〳にゃーーー[(ᆞωᆞᒪ)-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=/""ω""/+/\ω\/,(〳ᆞωᆞ).〳にゃーーーー=(ᒧᆞωᆞ).ᒧうーーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃー-(コᆞωᆞ)],(ᒧᆞωᆞ).ᒧうーーーー=(ᒧᆞωᆞ).ᒧうーーーー[(ᆞωᆞᒪ)- -(〳ᆞωᆞ).〳にゃーーー-(コᆞωᆞ)],(〳ᆞωᆞ).〳にゃーーーー=(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー,(ᒧᆞωᆞ).ᒧうーーーーー=(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーーーー =(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー,(ᒧᆞωᆞ).ᒧうーーーーー=(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうー+(ᒧᆞωᆞ).ᒧうーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーーー+(〳ᆞωᆞ).〳にゃーーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(ᒧᆞωᆞ).ᒧうーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(ᒧᆞωᆞ).ᒧうーー+(〳ᆞωᆞ).〳にゃーーー+(ᒧᆞωᆞ).ᒧうーーーーー+(〳ᆞωᆞ).〳にゃーー+(〳ᆞωᆞ).〳にゃーーーー+(〳ᆞωᆞ).〳にゃーーーー,(ᆞωᆞᒪ)=(コᆞωᆞ)=ー,(〳ᆞωᆞ).〳にゃーーーーー=(ᒧᆞωᆞ).ᒧうー[(ᆞωᆞᒪ)+(〳ᆞωᆞ).〳にゃーーーーー+(コᆞωᆞ)][(ᆞωᆞᒪ)+(〳ᆞωᆞ).〳にゃーーーーー+(コᆞωᆞ)],ᆞωᆞ=(ᒧᆞωᆞ).ᒧうー,(ᒧᆞωᆞ).ᒧうーーーーー=(〳ᆞωᆞ).〳にゃーーーーー(ᆞωᆞᒪ+(ᒧᆞωᆞ).ᒧうーーーーー+コᆞωᆞ)(ᆞωᆞ),(ᒧᆞωᆞ).ᒧうーーーーー=(〳ᆞωᆞ).〳にゃーーーーー(ᆞωᆞᒪ+(ᒧᆞωᆞ).ᒧうーーーーー+コᆞωᆞ)(ᆞωᆞ),(ᒧᆞωᆞ).ᒧうー=-!!(/ᆞωᆞ/).にゃー,(〳ᆞωᆞ).〳にゃー=- -!(ᒧᆞωᆞ).ᒧうー,(ᒧᆞωᆞ).ᒧうーー=(〳ᆞωᆞ).〳にゃー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーー=(ᒧᆞωᆞ).ᒧうーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーー=(〳ᆞωᆞ).〳にゃーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーー=(ᒧᆞωᆞ).ᒧうーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーーー=(〳ᆞωᆞ).〳にゃーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧうーーー- -(〳ᆞωᆞ).〳にゃー,(ᒧᆞωᆞ).ᒧうーーー=(〳ᆞωᆞ).〳にゃーーー- -!(ᒧᆞωᆞ).ᒧうー,(〳ᆞωᆞ).〳にゃーーー=(ᒧᆞωᆞ).ᒧうーーー- -(〳ᆞωᆞ).〳にゃー,(ᆞωᆞ))
を実行すると、たしかにソースコードの断片をみることができました。
FLAG_400{chaotically_obfuscated_js}
18:01 [Shell] command_not_found (200点)
$ ls
を入力しても問題文通り、command not foundとなります。
/bin/
以下にプログラムは残っているようなので、直接指定して実行してあげます。
$ /bin/cat flag.txt
FLAG_200{y0u_533m_70_kn0w_4b50lu73_p47h}
18:39 [Misc] kakezan (300点)
4つの数字のかけ算を30秒以内に13問解くとFLAGがもらえるようです。
僕には無理なので、問題が与えられたら勝手に解いてくれるスクリプトをRubyで書いて、実行しました。
require 'socket'
port = TCPSocket.open("kakezan.problem.cpctf.space",2197)
for i in 0..100 do
str = port.gets()
puts(str)
str.match(/:s(.+)sxs(.+)sxs(.+)sxs(.+)s=/)
res = $1.to_i * $2.to_i * $3.to_i * $4.to_i
puts(res)
port.puts(res)
end
FLAG_300{y0u_4re_4_pr0fe5510n41_k4ke24n15t}
ちなみに作問者の想定解は、本当に4つの数字のかけ算を30秒以内に13問解くことらしいです。
そういえば実際に達成してるの見たことあるなあ…
18:51 [Forensics] #traP1yakudo (200点)
先に作問者の想定解を言っておくと、画像のEXIF情報を解析して位置情報からお店を割り出し、メニューを見ることでFLAGが分かるようになっています。
ただ、画像はどう見てもファミレスのメニュー、作問者がよく行くファミレスといえば…
そう、ガストであるということはネトストしていると分かってしまいます。
なのでこの問題は[Forensics]というよりは[OSINT]的な問題として解いてしまいました。
あとはガストのメニュー表から商品名を割り出して、English版メニューを見るだけ。
FLAG_200{pancake_with_strawberry_sauce}
19:11 [Forensics] Listen my music! (200点)
piano.wav
というファイルが与えられますが、そのままではファイルが壊れているとエラーが出て聴くことができません。
そこでfile
コマンドで情報を見てみると、これはMIDIファイルであることがわかります。
あとは、piano.wav
をpiano.mid
に直して過去にtraPの新歓でインストールしたMIDI編集ソフトで開くと…
FLAG_200{C4N_YOU_L15T3N_MY_MU51C_?}
19:23 [Forensics] unzip1st (90点)
zipinfo
で中にFLAGが入っていることは分かるのですが、どうやってひらけばいいのかわかりません。
ヒントを開けてみると、
passがかかっていますが文字数が短いです
と書いてあるので、パスワードを総当たりで打ち込めばなんとか開くことができそうです。
fcrackzip
というツールを使うと、簡単に総当たり攻撃をすることができます。
$ fcrackzip -c 1aA! -l 1-4 -u flag1st.zip
FLAG_100{P455w0rds_sh0u1d_be_long_ch4rac7ers}
19:30 競技終了
おつかれさまでした#CPCTF
— nagatech (@_nagatech) 2019年4月17日
新入生の上位5位の表彰と、たまたまいた総合上位2人のインタビューをしたあとに、オンサイト会場にいた人たちがわからなかった問題の問題解説をしれくれました。
Binary問題言ってることは分かるんだけど、実際にバイナリ書き換えるところで躊躇してしまうので難しいなあという感じでした。
反省
これやっとけばもうちょっと点伸びただろうな〜というのをつらつら書いて行きます。
諦めるのが早すぎた
去年の反省として、時間をかけすぎたというのがあったのであまり深く考えずに別な問題を解くという方針にした結果、惜しいところまでいってるのに解けなかった問題が大量にあって後からぬわ〜〜〜てなってました。
例をあげると、
- Unzip 3rd [Forensics] (300)
- シグネチャ
KP
をPK
に直してfile name sizeがおかしいのを09 00
にするところまではやった - そこからファイル名が
00 ... 00
になっていたのを適当な名前をつけるだけでよかった
- シグネチャ
- 4 color theorem [Misc] (300)
- 画像がQRコードを表してるのは分かったし塗り分け方針もあってた
- ただ途中までやって本当に合ってるのか分からなくなってやめてしまった
- Password: C4 [Web] (300)
- wasmファイルを落とすところまでやった
- あとは
strings
コマンドで解析するだけでよかった
- StudentNumber [PPC] (200)
- はい
などなど…
もう少し考えれば解けたかもなあという感じ。
今年も解けなかったStudentNumber
精進します…
(なんでこれCase2までACしたんだ…)
おしまい
来年も開催されるか分からないですが、来年もやるならちょこっと参加したいなあという感じです。
運営のみなさまお疲れ様でした。