# misc - Beginners CTF Online 2021 ## fly 神奈川県警の魔の手から逃れるために削除。 ## Mail address validator ### 解法 配布ファイルを見ると自明にReDOS。ただし正規表現は以下で固定。 ``` /\A([\w+\-].?)+@[a-z\d\-]+(\.[a-z]+)*\.[a-z]+\z/i ``` こんなんで終わり。 ``` a@AAAAAAAAAA.AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA ``` ### 意見・感想 - Beginner難易度で良さそう ## depixelization ### 解法 何の処理かは知らんけど総当りで良さそう。 ```python= import cv2 import numpy as np import string target = cv2.imread("./output.png") flag = "" offset = 0 while offset < target.shape[1]: for c in string.printable[:-6]: img = np.full((100, 85, 3), (255,255,255), dtype=np.uint8) cv2.putText(img, c, (0, 80), cv2.FONT_HERSHEY_PLAIN, 8, (0, 0, 0), 5, cv2.LINE_AA) cv2.putText(img, "P", (0, 90), cv2.FONT_HERSHEY_PLAIN, 7, (0, 0, 0), 5, cv2.LINE_AA) cv2.putText(img, "I", (0, 90), cv2.FONT_HERSHEY_PLAIN, 8, (0, 0, 0), 5, cv2.LINE_AA) cv2.putText(img, "X", (0, 90), cv2.FONT_HERSHEY_PLAIN, 9, (0, 0, 0), 5, cv2.LINE_AA) simg = cv2.resize(img, None, fx=0.1, fy=0.1, interpolation=cv2.INTER_NEAREST) img = cv2.resize(simg, img.shape[:2][::-1], interpolation=cv2.INTER_NEAREST) width = img.shape[1] if (target[0:100, offset:offset+width,:] == img).all(): offset += width flag += c break else: print("[-] Not found :thinking:") flag += "?" offset += width print(flag) ``` 終わり。ただ1文字だけ答えが出なかった。 ``` ctf4b{1f_y0u_p1x_y0u_c4n_?3p1x} ``` まぁこんくらいguessするけど、これは解法が悪いのか? ### 意見・感想 - easy〜mediumくらいで良さそう - 【検閲済み】 - たぶん解法が悪いんですが、一応↑の確認だけお願いします :bow: ## width of space ### 解法 なんかcatしたらぐちゃぐちゃのが出てきた。なにこれ。 こういうのは【検閲済み】と決めてるので解きません。 ### 意見・感想 solver見たけどこれは一般に自明なの?ちょっと見たこと無いタイプのやつで分からないです。 zer0ptsなら100% rejectされてるけど、Beginnersなら去年の絵文字のやつと同じような意図で出していいのかな?個人的にはrejectで。